private void unregisterTap(ModuleDescriptor descriptor) {
		CuratorFramework client = zkConnection.getClient();
		String tapChannelName = determineTapChannel(descriptor);
		if (tapChannelName != null) {
			try {
				try {
					client.delete().forPath(Paths.build(Paths.TAPS, tapChannelName, this.containerAttributes.getId(),
							descriptor.getGroup()));
				}
				catch (KeeperException.NoNodeException e) {
					// already deleted, ignore
				}
				try {
					// now try to delete the container node and then if successful, the tap node itself
					client.delete().forPath(Paths.build(Paths.TAPS, tapChannelName, this.containerAttributes.getId()));
					client.delete().forPath(Paths.build(Paths.TAPS, tapChannelName));
				}
				catch (KeeperException.NoNodeException e) {
					// already deleted, ignore
				}
				catch (KeeperException.NotEmptyException e) {
					// attempted to delete a node that still has other children, let it be
				}
			}
			catch (Exception e) {
				if (client.getState() == CuratorFrameworkState.STARTED) {
					throw ZooKeeperUtils.wrapThrowable(e);
				}
				else {
					logger.debug("Ignoring exception for tap un-registration due to closed ZooKeeper connection", e);
				}
			}
		}
	}
Unregister the tap subscriber if the provided module has a tap channel as its source channel.

@param descriptor {@link ModuleDescriptor} for the module
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/server/container/DeploymentListener.java