Source:
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { final ContainerHolder holder = containers.get(containerKey); if (holder == null) { return; } switch (event.getType()) { case CHILD_ADDED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_ADDED[%s] with version[%s]", inventoryKey, event.getData().getStat().getVersion()); final InventoryClass addedInventory = strategy.deserializeInventory(child.getData()); synchronized (holder) { holder.setContainer(strategy.addInventory(holder.getContainer(), inventoryKey, addedInventory)); } break; } case CHILD_UPDATED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_UPDATED[%s] with version[%s]", inventoryKey, event.getData().getStat().getVersion()); final InventoryClass updatedInventory = strategy.deserializeInventory(child.getData()); synchronized (holder) { holder.setContainer(strategy.updateInventory(holder.getContainer(), inventoryKey, updatedInventory)); } break; } case CHILD_REMOVED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_REMOVED[%s] with version[%s]", inventoryKey, event.getData().getStat().getVersion()); synchronized (holder) { holder.setContainer(strategy.removeInventory(holder.getContainer(), inventoryKey)); } break; } case INITIALIZED: synchronized (lock) { synchronized (holder) { markInventoryInitialized(holder); } } break; } }

Target:
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { final ContainerHolder holder = containers.get(containerKey); if (holder == null) { return; } switch (event.getType()) { case CHILD_ADDED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_ADDED[%s] with version[%s]", child.getPath(), event.getData().getStat().getVersion()); final InventoryClass addedInventory = strategy.deserializeInventory(child.getData()); synchronized (holder) { holder.setContainer(strategy.addInventory(holder.getContainer(), inventoryKey, addedInventory)); } break; } case CHILD_UPDATED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_UPDATED[%s] with version[%s]", child.getPath(), event.getData().getStat().getVersion()); final InventoryClass updatedInventory = strategy.deserializeInventory(child.getData()); synchronized (holder) { holder.setContainer(strategy.updateInventory(holder.getContainer(), inventoryKey, updatedInventory)); } break; } case CHILD_REMOVED: { final ChildData child = event.getData(); final String inventoryKey = ZKPaths.getNodeFromPath(child.getPath()); log.info("CHILD_REMOVED[%s] with version[%s]", child.getPath(), event.getData().getStat().getVersion()); synchronized (holder) { holder.setContainer(strategy.removeInventory(holder.getContainer(), inventoryKey)); } break; } case INITIALIZED: synchronized (lock) { synchronized (holder) { markInventoryInitialized(holder); } } break; } }