[infinispan-commits] Infinispan SVN: r280 - trunk/core/src/main/java/org/infinispan/commands.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed May 13 07:04:06 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-05-13 07:04:06 -0400 (Wed, 13 May 2009)
New Revision: 280
Modified:
trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
Log:
[ISPN-48] - Introduce lock() and unlock() API methods
replication works
Modified: trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-13 10:41:51 UTC (rev 279)
+++ trunk/core/src/main/java/org/infinispan/commands/LockControlCommand.java 2009-05-13 11:04:06 UTC (rev 280)
@@ -24,6 +24,7 @@
import java.util.Collection;
import org.infinispan.commands.tx.AbstractTransactionBoundaryCommand;
+import org.infinispan.commands.write.WriteCommand;
import org.infinispan.context.InvocationContext;
import org.infinispan.transaction.xa.GlobalTransaction;
@@ -64,7 +65,20 @@
public boolean isUnlock() {
return !isLock();
}
+
+ @Override
+ public Object perform(InvocationContext ignored) throws Throwable {
+ if (ignored != null)
+ throw new IllegalStateException("Expected null context!");
+ boolean remoteTxinitiated = txTable.getRemoteTransaction(globalTx) != null ? true : false;
+ if (!remoteTxinitiated) {
+ //create bogus modifications (we do not know modifications ahead of time)
+ txTable.createRemoteTransaction(globalTx, new WriteCommand[] {});
+ }
+ return super.perform(ignored);
+ }
+
public Object acceptVisitor(InvocationContext ctx, Visitor visitor) throws Throwable {
return visitor.visitLockControlCommand(ctx, this);
}
More information about the infinispan-commits
mailing list