Index: jackrabbit-core/src/test/java/org/apache/jackrabbit/LostFromCacheIssueTest.java =================================================================== *** jackrabbit-core/src/test/java/org/apache/jackrabbit/LostFromCacheIssueTest.java (revision 0) --- jackrabbit-core/src/test/java/org/apache/jackrabbit/LostFromCacheIssueTest.java (revision 0) *************** *** 0 **** --- 1,116 ---- + package org.apache.jackrabbit; + + import java.io.File; + import java.io.InputStream; + import java.util.LinkedList; + import java.util.List; + import java.util.concurrent.BrokenBarrierException; + import java.util.concurrent.CyclicBarrier; + + import javax.jcr.NamespaceRegistry; + import javax.jcr.Node; + import javax.jcr.Property; + import javax.jcr.PropertyIterator; + import javax.jcr.Repository; + import javax.jcr.RepositoryException; + import javax.jcr.Session; + import javax.jcr.SimpleCredentials; + import javax.jcr.Workspace; + import javax.jcr.nodetype.NodeTypeManager; + + import org.apache.jackrabbit.core.RepositoryImpl; + import org.apache.jackrabbit.core.SessionImpl; + import org.apache.jackrabbit.core.nodetype.NodeTypeDef; + import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl; + import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry; + + import junit.framework.TestCase; + + public class LostFromCacheIssueTest extends TestCase { + public RepositoryImpl repository = null; + public Session session = null; + public Property mixinTypes; + + static private void delete(File path) { + if(path.exists()) { + if(path.isDirectory()) { + File[] files = path.listFiles(); + for(int i=0; i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: jackrabbit-core/src/test/resources/org/apache/jackrabbit/jackrabbit.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Id Added: svn:eol-style + native Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java =================================================================== *** jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java (revision 923523) --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateReferenceCache.java (working copy) *************** *** 22,27 **** --- 22,28 ---- import org.slf4j.LoggerFactory; import java.io.PrintStream; + import java.util.Map; /** * ItemStateReferenceCache internally consists of 2 components: *************** *** 133,138 **** --- 134,148 ---- refs.remove(id); } + public synchronized void purge(ItemId id) { + cache.purge(id); + } + + public synchronized void purge() { + cache.purge(); + System.gc(); + } + /** * {@inheritDoc} */ Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java =================================================================== *** jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (revision 923523) --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (working copy) *************** *** 647,652 **** --- 647,653 ---- shared.modified(state.getOverlayedState()); } + cache.purge(); for (Iterator iter = local.deletedStates(); iter.hasNext();) { ItemState state = (ItemState) iter.next(); state.connect(getItemState(state.getId())); Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java =================================================================== *** jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java (revision 923523) --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/MLRUItemStateCache.java (working copy) *************** *** 174,179 **** --- 174,187 ---- } } + public void purge(ItemId id) { + evict(id); + } + + public void purge() { + evictAll(); + } + /** * {@inheritDoc} */ Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateCache.java =================================================================== *** jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateCache.java (revision 923523) --- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ItemStateCache.java (working copy) *************** *** 70,75 **** --- 70,79 ---- */ void evict(ItemId id); + void purge(ItemId id); + + void purge(); + /** * Clears all entries from this cache. */