/** * Setting monitoreable child field. * * @param containerBase host or engine */ @SuppressWarnings("unchecked") private void addContextListener(ContainerBase containerBase) { boolean accessible = false; Field field = null; try { field = ContainerBase.class.getDeclaredField("children"); accessible = field.isAccessible(); field.setAccessible(true); Map<Object, Object> children = (Map<Object, Object>) field.get(containerBase); if (children instanceof GlobalListenerSupport.MoniterableHashMap) { return; } children = new GlobalListenerSupport.MoniterableHashMap(children, containerBase, "children", this); field.set(containerBase, children); } catch (Exception e) { e.printStackTrace(); } finally { if (field != null) { if (!accessible) { field.setAccessible(false); } } } }
/** * Setting monitoreable child field. * * @param containerBase host or engine */ @SuppressWarnings("unchecked") private void addContextListener(final ContainerBase containerBase) { boolean accessible = false; Field field = null; try { field = ContainerBase.class.getDeclaredField("children"); accessible = field.isAccessible(); field.setAccessible(true); Map<Object, Object> children = (Map<Object, Object>) field.get(containerBase); if (children instanceof GlobalListenerSupport.MoniterableHashMap) { return; } children = new GlobalListenerSupport.MoniterableHashMap(children, containerBase, "children", this); field.set(containerBase, children); } catch (final Exception e) { e.printStackTrace(); } finally { if (field != null) { if (!accessible) { field.setAccessible(false); } } } }