[jbosscache-commits] JBoss Cache SVN: r6069 - core/trunk/src/main/java/org/jboss/cache/commands/write.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Jun 26 17:42:34 EDT 2008


Author: manik.surtani at jboss.com
Date: 2008-06-26 17:42:34 -0400 (Thu, 26 Jun 2008)
New Revision: 6069

Removed:
   core/trunk/src/main/java/org/jboss/cache/commands/write/OptimisticInvalidateCommand.java
Log:
Files to be removed.  Missed by a previous check-in.

Deleted: core/trunk/src/main/java/org/jboss/cache/commands/write/OptimisticInvalidateCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/write/OptimisticInvalidateCommand.java	2008-06-26 17:55:25 UTC (rev 6068)
+++ core/trunk/src/main/java/org/jboss/cache/commands/write/OptimisticInvalidateCommand.java	2008-06-26 21:42:34 UTC (rev 6069)
@@ -1,188 +0,0 @@
-package org.jboss.cache.commands.write;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jboss.cache.CacheException;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.NodeSPI;
-import org.jboss.cache.commands.VersionedDataCommand;
-import org.jboss.cache.config.Option;
-import org.jboss.cache.invocation.InvocationContext;
-import org.jboss.cache.optimistic.DataVersion;
-import org.jboss.cache.transaction.GlobalTransaction;
-
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import java.util.Collections;
-
-/**
- * Behaves like {@link org.jboss.cache.commands.write.InvalidateCommand}. Also, potentially throws a cache exception if
- * data versioning is used and the node in memory has a newer data version than what is passed in.
- * <p/>
- * Finally, the data version of the in-memory node is updated to the version being evicted to prevent versions
- * going out of sync.
- * <p/>
- *
- * @author Mircea.Markus at jboss.com
- * @since 2.2
- */
-public class OptimisticInvalidateCommand extends InvalidateCommand implements VersionedDataCommand
-{
-   private static final Log log = LogFactory.getLog(OptimisticInvalidateCommand.class);
-   private static boolean trace = log.isTraceEnabled();
-
-   /*
-     dependencies
-    */
-   private TransactionManager transactionManager;
-
-   /**
-    * Params.
-    */
-   protected GlobalTransaction globalTransaction;
-   private DataVersion dataVersion;
-
-   public OptimisticInvalidateCommand(Fqn fqn)
-   {
-      super(fqn);
-   }
-
-   public OptimisticInvalidateCommand()
-   {
-   }
-
-   public void initialize(TransactionManager txManager)
-   {
-      this.transactionManager = txManager;
-   }
-
-   @Override
-   public Object perform(InvocationContext ctx)
-   {
-      NodeSPI node = enforceNodeLoading();
-      if (trace) log.trace("Invalidating fqn:" + fqn);
-      if (node == null)
-      {
-         // check if a tombstone already exists
-         NodeSPI nodeSPI = dataContainer.peek(fqn, false, true);
-         if (nodeSPI == null)
-         {
-            if (dataVersion == null)
-            {
-               if (trace)
-                  log.trace("Would have created a tombstone since the node doesn't exist, but the version to invalidate is null and hence cannot create a tombstone!");
-               return null;
-            }
-            createTombstone(ctx);
-            nodeSPI = (NodeSPI) dataContainer.getRoot().getChild(fqn);
-         }
-         node = nodeSPI;
-      }
-      removeData(ctx);
-      invalidateNode(node);
-      updateDataVersion();
-      return null;
-   }
-
-   protected void createTombstone(InvocationContext ctx)
-   {
-      if (trace)
-         log.trace("Node doesn't exist; creating a tombstone with data version " + dataVersion);
-      // create the node we need.
-      Option o = ctx.getOptionOverrides();
-      boolean origCacheModeLocal = o.isCacheModeLocal();
-      o.setCacheModeLocal(true);
-      o.setDataVersion(dataVersion);
-      // if we are in a tx this call should happen outside of any tx
-      try
-      {
-         Transaction suspended = null;
-         if (transactionManager != null)
-         {
-            suspended = transactionManager.suspend();
-         }
-         spi.put(fqn, Collections.emptyMap());
-         if (suspended != null) transactionManager.resume(suspended);
-         ctx.getOptionOverrides().setCacheModeLocal(origCacheModeLocal);
-      }
-      catch (Exception e)
-      {
-         log.error("Unable to create tombstone!", e);
-      }
-   }
-
-   private void updateDataVersion()
-   {
-      if (dataVersion != null)
-      {
-         NodeSPI n = dataContainer.peek(fqn, false, true);
-         n.setVersion(dataVersion);
-      }
-   }
-
-   protected void removeData(InvocationContext ctx) throws CacheException
-   {
-      NodeSPI n = dataContainer.peekVersioned(fqn, dataVersion);
-      if (n == null)
-      {
-         log.warn("node " + fqn + " not found");
-         return;
-      }
-      notifier.notifyNodeEvicted(fqn, true, ctx);
-      n.clearDataDirect();
-      n.setDataLoaded(false);
-      notifier.notifyNodeEvicted(fqn, false, ctx);
-   }
-
-   public DataVersion getDataVersion()
-   {
-      return dataVersion;
-   }
-
-   public void setDataVersion(DataVersion dataVersion)
-   {
-      this.dataVersion = dataVersion;
-   }
-
-   public GlobalTransaction getGlobalTransaction()
-   {
-      return globalTransaction;
-   }
-
-   public void setGlobalTransaction(GlobalTransaction gtx)
-   {
-      this.globalTransaction = gtx;
-   }
-
-   public boolean isVersioned()
-   {
-      return dataVersion != null;
-   }
-
-   @Override
-   public String toString()
-   {
-      return "OptimisticInvalidateCommand{" +
-            "dataVersion=" + dataVersion +
-            " ,fqn=" + fqn +
-            '}';
-   }
-
-   @Override
-   public Object[] getParameters()
-   {
-      return new Object[]{fqn, dataVersion};
-   }
-
-   @Override
-   public void setParameters(int commandId, Object[] args)
-   {
-      fqn = (Fqn) args[0];
-      dataVersion = (DataVersion) args[1];
-   }
-
-   public void rollback()
-   {
-      //no op
-   }
-}




More information about the jbosscache-commits mailing list