Index: dna-jcr/src/main/java/org/jboss/dna/jcr/SessionCache.java =================================================================== --- dna-jcr/src/main/java/org/jboss/dna/jcr/SessionCache.java (revision 829) +++ dna-jcr/src/main/java/org/jboss/dna/jcr/SessionCache.java (working copy) @@ -237,7 +337,7 @@ try { operations.execute(); } catch (org.jboss.dna.graph.property.PathNotFoundException e) { - throw new PathNotFoundException(e.getLocalizedMessage(), e); + throw new InvalidItemStateException(e.getLocalizedMessage(), e); } catch (RuntimeException e) { throw new RepositoryException(e.getLocalizedMessage(), e); } @@ -323,13 +439,11 @@ this.operations = store.batch(this.requestBuilder); // Remove all the cached, changed or deleted items that were just saved ... - for (UUID changedUuid : branchUuids) { - cachedNodes.remove(changedUuid); - changedNodes.remove(changedUuid); - deletedNodes.remove(changedUuid); - } + cachedNodes.keySet().removeAll(uuidsUnderBranch); + changedNodes.keySet().removeAll(uuidsUnderBranch); + deletedNodes.keySet().removeAll(uuidsUnderBranch); } catch (org.jboss.dna.graph.property.PathNotFoundException e) { - throw new PathNotFoundException(e.getLocalizedMessage(), e); + throw new InvalidItemStateException(e.getLocalizedMessage(), e); } catch (RuntimeException e) { throw new RepositoryException(e.getLocalizedMessage(), e); }