You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/03/31 12:10:37 UTC

svn commit: r760386 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Author: jukka
Date: Tue Mar 31 10:10:34 2009
New Revision: 760386

URL: http://svn.apache.org/viewvc?rev=760386&view=rev
Log:
JCR-2023: WorkspaceInfo.dispose() does not deregister SharedItemStateManager from virtual item state providers

Applied patch by Przemo Pakulski

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java?rev=760386&r1=760385&r2=760386&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java Tue Mar 31 10:10:34 2009
@@ -446,6 +446,12 @@
      * Disposes this <code>SharedItemStateManager</code> and frees resources.
      */
     public void dispose() {
+        // remove virtual item state providers (see JCR-2023)
+        for (int i = 0; i < virtualProviders.length; i++) {
+            virtualProviders[i].removeListener(this);
+        }
+        virtualProviders = new VirtualItemStateProvider[0];
+
         // clear cache
         cache.evictAll();
     }