[exo-jcr-commits] exo-jcr SVN: r5077 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr: jbosscache and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Oct 24 03:03:54 EDT 2011


Author: tolusha
Date: 2011-10-24 03:03:54 -0400 (Mon, 24 Oct 2011)
New Revision: 5077

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/PrivilegedJBossCacheHelper.java
Log:
EXOJCR-1590: fix test

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java	2011-10-20 14:02:26 UTC (rev 5076)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java	2011-10-24 07:03:54 UTC (rev 5077)
@@ -621,7 +621,7 @@
    @Override
    protected void doRemove(LockData lockData)
    {
-      cache.removeNode(makeLockFqn(lockData.getNodeIdentifier()));
+      PrivilegedJBossCacheHelper.removeNode(cache, makeLockFqn(lockData.getNodeIdentifier()));
    }
    
    /**

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/PrivilegedJBossCacheHelper.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/PrivilegedJBossCacheHelper.java	2011-10-20 14:02:26 UTC (rev 5076)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/PrivilegedJBossCacheHelper.java	2011-10-24 07:03:54 UTC (rev 5077)
@@ -125,4 +125,40 @@
          }
       }
    }
+
+   /**
+    * Revemo node in JBoss cache in privileged mode.
+    * 
+    * @param cache
+    */
+   public static boolean removeNode(final Cache<Serializable, Object> cache, final Fqn fqn) throws CacheException
+   {
+      PrivilegedExceptionAction<Boolean> action = new PrivilegedExceptionAction<Boolean>()
+      {
+         public Boolean run() throws Exception
+         {
+            return cache.removeNode(fqn);
+         }
+      };
+      try
+      {
+         return SecurityHelper.doPrivilegedExceptionAction(action);
+      }
+      catch (PrivilegedActionException pae)
+      {
+         Throwable cause = pae.getCause();
+         if (cause instanceof CacheException)
+         {
+            throw (CacheException)cause;
+         }
+         else if (cause instanceof RuntimeException)
+         {
+            throw (RuntimeException)cause;
+         }
+         else
+         {
+            throw new RuntimeException(cause);
+         }
+      }
+   }
 }



More information about the exo-jcr-commits mailing list