[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