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:24:43 UTC
[20/50] [abbrv] ignite git commit: IGNITE-950 - Tests WIP.
IGNITE-950 - Tests WIP.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2f453702
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2f453702
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2f453702
Branch: refs/heads/ignite-950
Commit: 2f453702e68c387ab80979b3de40a2cefdbdfe94
Parents: f3c160c
Author: Alexey Goncharuk <ag...@gridgain.com>
Authored: Fri Jul 24 19:20:13 2015 -0700
Committer: Alexey Goncharuk <ag...@gridgain.com>
Committed: Fri Jul 24 19:20:13 2015 -0700
----------------------------------------------------------------------
.../cache/CacheIndexedObjectImpl.java | 8 +++--
.../processors/cache/CacheObjectContext.java | 17 ++++++++++-
.../processors/cache/GridCacheContext.java | 22 ++------------
.../IgniteCacheObjectProcessorImpl.java | 11 ++++---
.../processors/query/GridQueryProcessor.java | 32 ++++++++++++++------
.../OptimizedMarshallerExtSelfTest.java | 2 +-
.../junits/IgniteTestResources.java | 5 +--
.../processors/cache/GridCacheSwapSelfTest.java | 6 ++--
8 files changed, 63 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheIndexedObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheIndexedObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheIndexedObjectImpl.java
index c85e2c9..931380f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheIndexedObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheIndexedObjectImpl.java
@@ -96,6 +96,7 @@ public class CacheIndexedObjectImpl extends CacheObjectAdapter implements CacheI
*/
public CacheIndexedObjectImpl(CacheObjectContext ctx, Object val, byte[] valBytes, int start, int len) {
assert val != null || (valBytes != null && start >= 0 && len > 0);
+ assert ctx != null;
this.ctx = ctx;
this.val = val;
@@ -123,7 +124,8 @@ public class CacheIndexedObjectImpl extends CacheObjectAdapter implements CacheI
/** {@inheritDoc} */
@Override public void finishUnmarshal(CacheObjectContext ctx, ClassLoader ldr) throws IgniteCheckedException {
- assert valBytes != null;
+ assert val != null || valBytes != null : "Invalid indexed object for unmarshal: " + this;
+ assert ctx != null;
this.ctx = ctx;
@@ -174,6 +176,8 @@ public class CacheIndexedObjectImpl extends CacheObjectAdapter implements CacheI
assert valBytes != null;
try {
+ assert ctx != null;
+
OptimizedMarshaller marsh = (OptimizedMarshaller)ctx.kernalContext().config().getMarshaller();
return marsh.hasField(fieldName, valBytes, start, len);
@@ -213,7 +217,7 @@ public class CacheIndexedObjectImpl extends CacheObjectAdapter implements CacheI
assert valBytes != null;
Object val = ctx.processor().unmarshal(ctx, valBytes, start, len,
- ctx.kernalContext().defaultClassLoader());
+ ctx.classLoader());
if (keepDeserialized(ctx, false))
this.val = val;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/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 9de267b..7a160ab 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
@@ -36,6 +36,9 @@ public class CacheObjectContext implements Externalizable {
/** */
private IgniteCacheObjectProcessor proc;
+ /** Cache name. */
+ private String cacheName;
+
/** */
private AffinityKeyMapper dfltAffMapper;
@@ -61,12 +64,15 @@ public class CacheObjectContext implements Externalizable {
* @param cpyOnGet Copy on get flag.
* @param storeVal {@code True} if should store unmarshalled value in cache.
*/
- public CacheObjectContext(GridKernalContext kernalCtx,
+ public CacheObjectContext(
+ GridKernalContext kernalCtx,
+ String cacheName,
AffinityKeyMapper dfltAffMapper,
boolean cpyOnGet,
boolean storeVal
) {
this.kernalCtx = kernalCtx;
+ this.cacheName = cacheName;
this.dfltAffMapper = dfltAffMapper;
this.cpyOnGet = cpyOnGet;
this.storeVal = storeVal;
@@ -117,6 +123,15 @@ public class CacheObjectContext implements Externalizable {
return proc;
}
+ public ClassLoader classLoader() {
+ if (!kernalCtx.config().isPeerClassLoadingEnabled())
+ return kernalCtx.defaultClassLoader();
+
+ IgniteInternalCache<Object, Object> cache = kernalCtx.cache().cache(cacheName);
+
+ return cache != null ? cache.context().deploy().globalLoader() : kernalCtx.defaultClassLoader();
+ }
+
/**
* Unwraps object if needed.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 8189afd..210d058 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -196,9 +196,6 @@ public class GridCacheContext<K, V> implements Externalizable {
/** Updates allowed flag. */
private boolean updatesAllowed;
- /** Flag indicating that marshalled cache object field access should be used. */
- private boolean useClsFldsAccess;
-
/**
* Empty constructor required for {@link Externalizable}.
*/
@@ -524,20 +521,6 @@ public class GridCacheContext<K, V> implements Externalizable {
}
/**
- * @return Whether indexing should use deserialized values to access object fields.
- */
- public boolean useClassFieldAccess() {
- return useClsFldsAccess;
- }
-
- /**
- * @param useClsFldsAccess Whether indexing should use deserialized values to access object fields.
- */
- public void useClassFieldAccess(boolean useClsFldsAccess) {
- this.useClsFldsAccess = useClsFldsAccess;
- }
-
- /**
* @return {@code True} if entries should not be deleted from cache immediately.
*/
public boolean deferredDelete() {
@@ -1786,8 +1769,9 @@ public class GridCacheContext<K, V> implements Externalizable {
if (ldr == null)
return null;
- return ctx.cacheObjects().toCacheObject(cacheObjCtx, ctx.cacheObjects().unmarshal(cacheObjCtx, bytes, ldr),
- false);
+ return ctx.cacheObjects().isFieldsIndexingEnabled() ?
+ ctx.cacheObjects().toCacheObject(cacheObjCtx, type, bytes) :
+ ctx.cacheObjects().toCacheObject(cacheObjCtx, ctx.cacheObjects().unmarshal(cacheObjCtx, bytes, ldr), false);
}
return ctx.cacheObjects().toCacheObject(cacheObjCtx, type, bytes);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
index 16f7ef8..dd6df0d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
@@ -381,10 +381,13 @@ public class IgniteCacheObjectProcessorImpl extends GridProcessorAdapter impleme
ctx.resource().injectGeneric(affMapper);
- return new CacheObjectContext(ctx,
+ return new CacheObjectContext(
+ ctx,
+ ccfg.getName(),
affMapper,
ccfg.isCopyOnRead() && memMode != OFFHEAP_VALUES,
- storeVal);
+ storeVal
+ );
}
/** {@inheritDoc} */
@@ -414,7 +417,7 @@ public class IgniteCacheObjectProcessorImpl extends GridProcessorAdapter impleme
/** {@inheritDoc} */
@Nullable @Override public Object unwrapIndexedObject(Object obj) throws IgniteException {
- return null;
+ return ((CacheIndexedObject)obj).deserialize();
}
/** {@inheritDoc} */
@@ -571,7 +574,7 @@ public class IgniteCacheObjectProcessorImpl extends GridProcessorAdapter impleme
return new CacheIndexedObjectImpl(ctx, val, valBytes, start, len);
}
- return new CacheIndexedObjectImpl(null, valBytes, start, len);
+ return new CacheIndexedObjectImpl(ctx, null, valBytes, start, len);
}
catch (IgniteCheckedException e) {
throw new IgniteException("Failed to marshal object: " + val, e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 9df5acb..f76da26 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -175,9 +175,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
throw new IgniteCheckedException(""); // TODO ignite-950
}
- boolean useFieldAccess = !hasClasses || ccfg.isCopyOnRead();
-
- cctx.useClassFieldAccess(!useFieldAccess);
+ boolean useFieldAccess = ctx.cacheObjects().isFieldsIndexingEnabled();
for (CacheTypeMetadata meta : ccfg.getTypeMetadata()) {
TypeDescriptor desc = new TypeDescriptor();
@@ -189,17 +187,33 @@ public class GridQueryProcessor extends GridProcessorAdapter {
desc.name(meta.getSimpleValueType());
- desc.valueClass(valCls != null ? valCls : Object.class);
- desc.keyClass(keyCls != null ? keyCls : Object.class);
+ if (ctx.cacheObjects().isFieldsIndexingEnabled()) {
+ // Safe to check null.
+ if (SQL_TYPES.contains(valCls))
+ desc.valueClass(valCls);
+ else
+ desc.valueClass(Object.class);
+
+ if (SQL_TYPES.contains(keyCls))
+ desc.keyClass(keyCls);
+ else
+ desc.keyClass(Object.class);
+ }
+ else {
+ desc.valueClass(valCls);
+ desc.keyClass(keyCls);
+ }
TypeId typeId;
- TypeId altTypeId;
+ TypeId altTypeId = null;
if (useFieldAccess) {
processCacheTypeMeta(meta, desc);
typeId = new TypeId(ccfg.getName(), ctx.cacheObjects().typeId(meta.getValueType()));
- altTypeId = null;
+
+ if (valCls != null)
+ altTypeId = new TypeId(ccfg.getName(), valCls);
}
else {
assert valCls != null;
@@ -706,8 +720,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
IgniteBiTuple<K, V> t = i.next();
return new CacheEntryImpl<>(
- t.getKey(),
- t.getValue());
+ (K)cctx.unwrapIfNeeded(t.getKey(), cctx.keepIgniteObject()),
+ (V)cctx.unwrapIfNeeded(t.getValue(), cctx.keepIgniteObject()));
}
@Override public void remove() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerExtSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerExtSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerExtSelfTest.java
index ccf92b9..ec3a6c6 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerExtSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerExtSelfTest.java
@@ -58,7 +58,7 @@ public class OptimizedMarshallerExtSelfTest extends OptimizedMarshallerSelfTest
setupIndexingHandler();
- objCtx = new CacheObjectContext(grid().context(), new CacheIndexedObjectDefaultAffinityMapper(), true, false);
+ objCtx = new CacheObjectContext(grid().context(), null, new CacheIndexedObjectDefaultAffinityMapper(), true, false);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
index d91cc0f..48ce950 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java
@@ -248,7 +248,7 @@ public class IgniteTestResources {
if (marsh instanceof OptimizedMarshaller) {
((OptimizedMarshaller)marsh).setRequireSerializable(false);
- OptimizedMarshallerProtocolVersion ver = OptimizedMarshallerProtocolVersion.VER_1;
+ OptimizedMarshallerProtocolVersion ver = null;
String property = GridTestProperties.getProperty(GridTestProperties.OPTIMIZED_MARSH_PROTOCOL);
@@ -260,7 +260,8 @@ public class IgniteTestResources {
log.warning("Failed to set optimized marshaller protocol version: " + property);
}
- ((OptimizedMarshaller)marsh).setProtocolVersion(ver);
+ if (ver != null)
+ ((OptimizedMarshaller)marsh).setProtocolVersion(ver);
}
marsh.setContext(new MarshallerContextTestImpl());
http://git-wip-us.apache.org/repos/asf/ignite/blob/2f453702/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapSelfTest.java
index 4555c6b..c4c44ec 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapSelfTest.java
@@ -152,6 +152,8 @@ public class GridCacheSwapSelfTest extends GridCommonAbstractTest {
@SuppressWarnings("BusyWait")
public void testSwapDeployment() throws Exception {
try {
+ fail("Uncomment when IGNITE-1156 is fixed.");
+
Ignite ignite1 = startGrid(1);
excluded = true;
@@ -208,7 +210,7 @@ public class GridCacheSwapSelfTest extends GridCommonAbstractTest {
if (success)
break;
- else if (i < 2) {
+ else if (i < 6) {
info("Sleeping to wait for cache clear.");
Thread.sleep(500);
@@ -635,7 +637,7 @@ public class GridCacheSwapSelfTest extends GridCommonAbstractTest {
assert entry != null;
assert entry.key() != null;
- CacheValue val = CU.value(entry.rawGet(), entry.context(), false);
+ CacheValue val = cache.localPeek(i);
assert val != null;
assertEquals(CU.value(entry.key(), entry.context(), false), new Integer(val.value()));