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} */