You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/08/31 23:25:12 UTC

[49/50] [abbrv] ignite git commit: IGNITE-950 - Fixing tests.

IGNITE-950 - Fixing tests.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e50d7367
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e50d7367
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e50d7367

Branch: refs/heads/ignite-950
Commit: e50d73672d8e21121ad487e8b2bd358b92c617d5
Parents: 2946b13
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Mon Aug 3 13:35:17 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Mon Aug 3 13:35:17 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/CacheObjectContext.java    | 42 +++++++++++++++++++-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  9 ++++-
 2 files changed, 48 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e50d7367/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java
index 7a160ab..4531f7e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java
@@ -39,6 +39,9 @@ public class CacheObjectContext implements Externalizable {
     /** Cache name. */
     private String cacheName;
 
+    /** Grid name. */
+    private String gridName;
+
     /** */
     private AffinityKeyMapper dfltAffMapper;
 
@@ -79,6 +82,7 @@ public class CacheObjectContext implements Externalizable {
 
         p2pEnabled = kernalCtx.config().isPeerClassLoadingEnabled();
         proc = kernalCtx.cacheObjects();
+        gridName = kernalCtx.gridName();
     }
 
     /**
@@ -103,6 +107,13 @@ public class CacheObjectContext implements Externalizable {
     }
 
     /**
+     * @param storeVal Store value flag.
+     */
+    public void storeValue(boolean storeVal) {
+        this.storeVal = storeVal;
+    }
+
+    /**
      * @return Default affinity mapper.
      */
     public AffinityKeyMapper defaultAffMapper() {
@@ -251,11 +262,38 @@ public class CacheObjectContext implements Externalizable {
 
     /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
-        assert false; // TODO IGNITE-950
+        U.writeString(out, gridName);
+        U.writeString(out, cacheName);
     }
 
     /** {@inheritDoc} */
     @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        assert false; // TODO IGNITE-950
+        gridName = U.readString(in);
+        cacheName = U.readString(in);
+    }
+
+    /**
+     * Reconstructs object on unmarshalling.
+     *
+     * @return Reconstructed object.
+     * @throws ObjectStreamException Thrown in case of unmarshalling error.
+     */
+    protected Object readResolve() throws ObjectStreamException {
+        try {
+            GridKernalContext ctx = IgnitionEx.gridx(gridName).context();
+
+            GridCacheAdapter<Object, Object> cache = ctx.cache().internalCache(cacheName);
+
+            return cache == null ?
+                new CacheObjectContext(ctx, cacheName,
+                    ctx.cacheObjects().isFieldsIndexingEnabled() ?
+                        new CacheIndexedObjectDefaultAffinityMapper() :
+                        new GridCacheDefaultAffinityKeyMapper(),
+                    true, false) :
+                cache.context().cacheObjectContext();
+        }
+        catch (IllegalStateException e) {
+            throw U.withCause(new InvalidObjectException(e.getMessage()), e);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/e50d7367/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index 4c8a161..ab6821d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -52,6 +52,9 @@ import static org.apache.ignite.internal.processors.cache.GridCacheOperation.*;
  */
 public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
     implements GridCacheAtomicFuture<Object>{
+    /** */
+    private static final IgniteUuid EMPTY_UUID = IgniteUuid.randomUuid();
+
     /** Logger reference. */
     private static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>();
 
@@ -236,7 +239,11 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
     /** {@inheritDoc} */
     @Override public IgniteUuid futureId() {
-        return futVer.asGridUuid();
+        GridCacheVersion ver = futVer;
+
+        // Ver may be null in case if future is in a process of the remap, but a concurrent thread observed this
+        // future in MVCC map.
+        return ver != null ? ver.asGridUuid() : EMPTY_UUID;
     }
 
     /** {@inheritDoc} */