Index: org/apache/jackrabbit/core/SessionImpl.java =================================================================== --- org/apache/jackrabbit/core/SessionImpl.java (revision 232927) +++ org/apache/jackrabbit/core/SessionImpl.java (working copy) @@ -1100,7 +1100,7 @@ notifyLoggingOut(); // discard all transient changes - itemStateMgr.disposeAllTransientItemStates(); + itemStateMgr.dispose(); // dispose item manager itemMgr.dispose(); // dispose workspace Index: org/apache/jackrabbit/core/state/LocalItemStateManager.java =================================================================== --- org/apache/jackrabbit/core/state/LocalItemStateManager.java (revision 232927) +++ org/apache/jackrabbit/core/state/LocalItemStateManager.java (working copy) @@ -16,6 +16,10 @@ */ package org.apache.jackrabbit.core.state; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + import org.apache.jackrabbit.core.ItemId; import org.apache.jackrabbit.core.NodeId; import org.apache.jackrabbit.core.PropertyId; @@ -86,6 +90,14 @@ * Disposes this LocalItemStateManager and frees resources. */ public void dispose() { + // discard cached item states + Collection tmp = new ArrayList(cache.values()); + Iterator iter = tmp.iterator(); + while (iter.hasNext()) { + ItemState state = (ItemState) iter.next(); + state.discard() ; + state.onDisposed() ; + } // clear cache cache.evictAll(); } Index: org/apache/jackrabbit/core/state/UpdatableItemStateManager.java =================================================================== --- org/apache/jackrabbit/core/state/UpdatableItemStateManager.java (revision 232927) +++ org/apache/jackrabbit/core/state/UpdatableItemStateManager.java (working copy) @@ -113,4 +113,10 @@ * @throws IllegalStateException if the manager is not in edit mode. */ void update() throws ItemStateException, IllegalStateException; + + /** + * Disposes this UpdatableItemStateManager and frees resources. + */ + public void dispose() ; + } Index: org/apache/jackrabbit/core/state/SessionItemStateManager.java =================================================================== --- org/apache/jackrabbit/core/state/SessionItemStateManager.java (revision 232927) +++ org/apache/jackrabbit/core/state/SessionItemStateManager.java (working copy) @@ -668,6 +668,15 @@ public void disposeAllTransientItemStates() { transientStateMgr.disposeAllItemStates(); } + + /** + * Disposes this SessionItemStateManager and frees resources. + */ + public void dispose() { + disposeAllTransientItemStates() ; + persistentStateMgr.dispose() ; + + } //--------------------------------------------------------< inner classes > /**