@rhauch, @okulikov : looking at the code, the `getChangedNodesAtOrBelowChildrenFirst` method is only called from  
`doClear( CachedNode node )`, which in turn is called when a `node.refresh()` call is performed.

Given that at the moment of the `node.refresh()` call the changes (which will be discarded at the end) should still be present in the `WritableSessionCache` instance, I don't understand why `changedNode.isAtOrBelow` would throw a `NodeNotFoundException`.

What is the place from the `isAtOrBelow` method where the `NodeNotFoundException` originates from ?