void unregisterNewNode(JCRNodeWrapper node) { if (!newNodes.isEmpty()) { newNodes.remove(node.getPath()); try { if (node.hasNodes()) { NodeIterator it = node.getNodes(); while (it.hasNext()) { unregisterNewNode((JCRNodeWrapper) it.next()); } } } catch (RepositoryException e) { logger.warn("Error unregistering new nodes", e); } } }
public void removeItem(String absPath) throws VersionException, LockException, ConstraintViolationException, AccessDeniedException, RepositoryException { JCRItemWrapper item = getItem(absPath); boolean flushNeeded = false; if (item.isNode()) { JCRNodeWrapper node = (JCRNodeWrapper) item; unregisterNewNode(node); if (node.hasNodes()) { flushNeeded = true; } } item.remove(); if (flushNeeded) { flushCaches(); } else { removeFromCache(item); } }