[infinispan-commits] Infinispan SVN: r351 - in trunk/core/src: main/java/org/infinispan/context and 1 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu May 28 04:50:16 EDT 2009


Author: mircea.markus
Date: 2009-05-28 04:50:16 -0400 (Thu, 28 May 2009)
New Revision: 351

Modified:
   trunk/core/src/main/java/org/infinispan/CacheDelegate.java
   trunk/core/src/main/java/org/infinispan/context/InvocationContextContainer.java
   trunk/core/src/main/java/org/infinispan/context/InvocationContextContainerImpl.java
   trunk/core/src/test/java/org/infinispan/api/mvcc/LockTestBase.java
Log:
made eviction not transactionable

Modified: trunk/core/src/main/java/org/infinispan/CacheDelegate.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-27 13:00:37 UTC (rev 350)
+++ trunk/core/src/main/java/org/infinispan/CacheDelegate.java	2009-05-28 08:50:16 UTC (rev 351)
@@ -205,7 +205,7 @@
 
    public final void evict(K key) {
       EvictCommand command = commandsFactory.buildEvictCommand(key);
-      invoker.invoke(getInvocationContext(), command);
+      invoker.invoke(icc.createNonTxInvocationContext(), command);
    }
 
    public Configuration getConfiguration() {

Modified: trunk/core/src/main/java/org/infinispan/context/InvocationContextContainer.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/context/InvocationContextContainer.java	2009-05-27 13:00:37 UTC (rev 350)
+++ trunk/core/src/main/java/org/infinispan/context/InvocationContextContainer.java	2009-05-28 08:50:16 UTC (rev 351)
@@ -2,6 +2,7 @@
 
 import org.infinispan.context.impl.LocalTxInvocationContext;
 import org.infinispan.context.impl.RemoteTxInvocationContext;
+import org.infinispan.context.impl.NonTxInvocationContext;
 import org.infinispan.factories.annotations.NonVolatile;
 import org.infinispan.factories.scopes.Scope;
 import org.infinispan.factories.scopes.Scopes;
@@ -27,6 +28,12 @@
    InvocationContext createInvocationContext();
 
    /**
+    * Will create an {@link org.infinispan.context.impl.NonTxInvocationContext} with the {@link org.infinispan.context.impl.NonTxInvocationContext#isOriginLocal()}
+    * returning true. 
+    */
+   NonTxInvocationContext createNonTxInvocationContext();
+
+   /**
     * Returns a {@link org.infinispan.context.impl.LocalTxInvocationContext}. The context is also associated with the
     * current thread, so further calls to {@link #getInvocationContext()} will return same instace.
     */

Modified: trunk/core/src/main/java/org/infinispan/context/InvocationContextContainerImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/context/InvocationContextContainerImpl.java	2009-05-27 13:00:37 UTC (rev 350)
+++ trunk/core/src/main/java/org/infinispan/context/InvocationContextContainerImpl.java	2009-05-28 08:50:16 UTC (rev 351)
@@ -51,8 +51,6 @@
 
    ThreadLocal<InvocationContext> icTl = new ThreadLocal<InvocationContext>();
 
-   private Map<GlobalTransaction, RemoteTxInvocationContext> remoteTxMap = new ConcurrentHashMap<GlobalTransaction, RemoteTxInvocationContext>(20);
-
    @Inject
    public void init(TransactionManager tm, TransactionTable transactionTable) {
       this.tm = tm;
@@ -106,6 +104,18 @@
       return remoteTxContext;
    }
 
+   public NonTxInvocationContext createNonTxInvocationContext() {
+      InvocationContext existing = icTl.get();
+      if (existing != null && existing instanceof NonTxInvocationContext) {
+         NonTxInvocationContext context = (NonTxInvocationContext) existing;
+         context.setOriginLocal(true);
+         return context;
+      }
+      NonTxInvocationContext remoteTxContext = new NonTxInvocationContext();
+      icTl.set(remoteTxContext);
+      return remoteTxContext;
+   }
+
    public NonTxInvocationContext createRemoteInvocationContext() {
       InvocationContext existing = icTl.get();
       if (existing != null && existing instanceof NonTxInvocationContext) {

Modified: trunk/core/src/test/java/org/infinispan/api/mvcc/LockTestBase.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/api/mvcc/LockTestBase.java	2009-05-27 13:00:37 UTC (rev 350)
+++ trunk/core/src/test/java/org/infinispan/api/mvcc/LockTestBase.java	2009-05-28 08:50:16 UTC (rev 351)
@@ -134,7 +134,7 @@
 
       tm.begin();
       cache.evict("k");
-      assertLocked("k");
+      assertNotLocked("k");
       tm.commit();
       assert !cache.containsKey("k") : "Should not exist";
       assertNoLocks();
@@ -162,7 +162,7 @@
 
       tm.begin();
       cache.evict("k");
-      assertLocked("k");
+      assertNotLocked("k");
       tm.commit();
       assert !cache.containsKey("k") : "Should not exist";
       assertNoLocks();




More information about the infinispan-commits mailing list