IGNITE-2683 (cherry picked from commit 2146631)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/03e5d9c6 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/03e5d9c6 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/03e5d9c6 Branch: refs/heads/ignite-1.5.7 Commit: 03e5d9c6efa4ab5506c51d02c1d5ec88147bd315 Parents: 66bc778 Author: Anton Vinogradov <[email protected]> Authored: Fri Feb 19 19:05:33 2016 +0300 Committer: Anton Vinogradov <[email protected]> Committed: Fri Feb 19 19:29:32 2016 +0300 ---------------------------------------------------------------------- .../internal/GridEventConsumeHandler.java | 4 +- .../internal/GridMessageListenHandler.java | 4 +- .../ignite/internal/binary/BinaryUtils.java | 2 +- .../checkpoint/GridCheckpointManager.java | 2 +- .../managers/communication/GridIoManager.java | 9 +- .../deployment/GridDeploymentCommunication.java | 2 +- .../deployment/GridDeploymentLocalStore.java | 2 +- .../eventstorage/GridEventStorageManager.java | 10 +- .../processors/affinity/GridAffinityUtils.java | 3 +- .../cache/CacheEntrySerializablePredicate.java | 3 +- .../cache/CacheInvokeDirectResult.java | 3 +- .../cache/GridCacheDeploymentManager.java | 5 + .../processors/cache/GridCacheMessage.java | 4 +- .../processors/cache/GridCacheProcessor.java | 5 +- .../GridDistributedLockResponse.java | 3 +- .../GridDistributedTxPrepareRequest.java | 2 +- .../GridDistributedTxPrepareResponse.java | 3 +- .../dht/GridDhtAffinityAssignmentResponse.java | 3 +- .../dht/GridDhtTxFinishResponse.java | 3 +- .../dht/atomic/GridDhtAtomicUpdateResponse.java | 3 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 5 +- .../atomic/GridNearAtomicUpdateResponse.java | 3 +- .../dht/preloader/GridDhtForceKeysResponse.java | 4 +- .../GridDhtPartitionDemandMessage.java | 3 +- .../preloader/GridDhtPartitionsFullMessage.java | 5 +- .../GridDhtPartitionsSingleMessage.java | 5 +- .../distributed/near/GridNearGetResponse.java | 3 +- .../near/GridNearSingleGetResponse.java | 3 +- .../near/GridNearTxFinishResponse.java | 3 +- .../cache/query/GridCacheLocalQueryFuture.java | 7 +- .../cache/query/GridCacheQueryRequest.java | 13 +- .../cache/query/GridCacheQueryResponse.java | 3 +- .../cache/query/GridCacheSqlQuery.java | 6 +- .../continuous/CacheContinuousQueryHandler.java | 2 +- .../cache/transactions/IgniteTxEntry.java | 6 +- .../version/GridCacheRawVersionedEntry.java | 5 +- .../IgniteCacheObjectProcessorImpl.java | 3 +- .../closure/GridClosureProcessor.java | 6 +- .../continuous/GridContinuousProcessor.java | 6 +- .../datastreamer/DataStreamProcessor.java | 4 +- .../datastreamer/DataStreamerImpl.java | 2 +- .../processors/job/GridJobProcessor.java | 10 +- .../internal/processors/job/GridJobWorker.java | 2 +- .../offheap/GridOffHeapProcessor.java | 2 +- .../handlers/task/GridTaskCommandHandler.java | 6 +- .../service/GridServiceProcessor.java | 3 +- .../processors/task/GridTaskProcessor.java | 5 +- .../processors/task/GridTaskWorker.java | 9 +- .../ignite/internal/util/IgniteUtils.java | 22 ++- .../ignite/spi/discovery/tcp/ClientImpl.java | 12 +- .../ignite/spi/discovery/tcp/ServerImpl.java | 16 +- .../spi/discovery/tcp/TcpDiscoverySpi.java | 3 +- .../TcpDiscoveryCustomEventMessage.java | 2 +- .../GridCacheReplicatedPreloadSelfTest.java | 184 +++++++++++++++++++ .../CacheDeploymentExternalizableTestValue.java | 68 +++++++ .../processors/query/h2/IgniteH2Indexing.java | 2 +- .../query/h2/twostep/GridMapQueryExecutor.java | 2 +- 57 files changed, 421 insertions(+), 99 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java index 69af6cd..e2b1184 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridEventConsumeHandler.java @@ -337,7 +337,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { } try { - wrapper.p2pUnmarshal(ctx.config().getMarshaller(), ldr); + wrapper.p2pUnmarshal(ctx.config().getMarshaller(), U.resolveClassLoader(ldr, ctx.config())); } catch (IgniteCheckedException e) { U.error(ctx.log(getClass()), "Failed to unmarshal event.", e); @@ -386,7 +386,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { if (dep == null) throw new IgniteDeploymentCheckedException("Failed to obtain deployment for class: " + clsName); - filter = ctx.config().getMarshaller().unmarshal(filterBytes, dep.classLoader()); + filter = ctx.config().getMarshaller().unmarshal(filterBytes, U.resolveClassLoader(dep.classLoader(), ctx.config())); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java index bf81944..402365c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridMessageListenHandler.java @@ -192,9 +192,9 @@ public class GridMessageListenHandler implements GridContinuousHandler { ClassLoader ldr = dep.classLoader(); if (topicBytes != null) - topic = ctx.config().getMarshaller().unmarshal(topicBytes, ldr); + topic = ctx.config().getMarshaller().unmarshal(topicBytes, U.resolveClassLoader(ldr, ctx.config())); - pred = ctx.config().getMarshaller().unmarshal(predBytes, ldr); + pred = ctx.config().getMarshaller().unmarshal(predBytes, U.resolveClassLoader(ldr, ctx.config())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java index 1b53ffd..d5b0854 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java @@ -1560,7 +1560,7 @@ public class BinaryUtils { ByteArrayInputStream input = new ByteArrayInputStream(in.array(), in.position(), len); try { - return ctx.optimizedMarsh().unmarshal(input, clsLdr); + return ctx.optimizedMarsh().unmarshal(input, U.resolveClassLoader(clsLdr, ctx.configuration())); } catch (IgniteCheckedException e) { throw new BinaryObjectException("Failed to unmarshal object with optimized marshaller", e); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java index ac7c99a..6b95dad 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java @@ -338,7 +338,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { // Always deserialize with task/session class loader. if (data != null) - state = marsh.unmarshal(data, ses.getClassLoader()); + state = marsh.unmarshal(data, U.resolveClassLoader(ses.getClassLoader(), ctx.config())); record(EVT_CHECKPOINT_LOADED, key); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java index 42f8dae..36be9ec 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java @@ -585,7 +585,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa if (msg.topic() == null) { int topicOrd = msg.topicOrdinal(); - msg.topic(topicOrd >= 0 ? GridTopic.fromOrdinal(topicOrd) : marsh.unmarshal(msg.topicBytes(), null)); + msg.topic(topicOrd >= 0 ? GridTopic.fromOrdinal(topicOrd) : + marsh.unmarshal(msg.topicBytes(), U.resolveClassLoader(ctx.config()))); } if (!started) { @@ -1980,7 +1981,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa // Unmarshall message topic if needed. if (msgTopic == null && msgTopicBytes != null) { - msgTopic = marsh.unmarshal(msgTopicBytes, dep != null ? dep.classLoader() : null); + msgTopic = marsh.unmarshal(msgTopicBytes, + U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config())); ioMsg.topic(msgTopic); // Save topic to avoid future unmarshallings. } @@ -1989,7 +1991,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa return; if (msgBody == null) { - msgBody = marsh.unmarshal(ioMsg.bodyBytes(), dep != null ? dep.classLoader() : null); + msgBody = marsh.unmarshal(ioMsg.bodyBytes(), + U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config())); ioMsg.body(msgBody); // Save body to avoid future unmarshallings. } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentCommunication.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentCommunication.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentCommunication.java index 833ceba..76bd6e3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentCommunication.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentCommunication.java @@ -183,7 +183,7 @@ class GridDeploymentCommunication { if (req.responseTopic() == null) { try { - req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), null)); + req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to process deployment request (will ignore): " + req, e); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java index d095efb..ab45708 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java @@ -174,7 +174,7 @@ class GridDeploymentLocalStore extends GridDeploymentStoreAdapter { // Safety. if (ldr == null) - ldr = U.gridClassLoader(); + ldr = U.resolveClassLoader(ctx.config()); } if (ldr instanceof GridDeploymentClassLoader) { http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java index ea01e52..0095707 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java @@ -891,10 +891,12 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> try { if (res.eventsBytes() != null) - res.events(marsh.<Collection<Event>>unmarshal(res.eventsBytes(), null)); + res.events(marsh.<Collection<Event>>unmarshal(res.eventsBytes(), + U.resolveClassLoader(ctx.config()))); if (res.exceptionBytes() != null) - res.exception(marsh.<Throwable>unmarshal(res.exceptionBytes(), null)); + res.exception(marsh.<Throwable>unmarshal(res.exceptionBytes(), + U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal events query response: " + msg, e); @@ -1087,7 +1089,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> try { if (req.responseTopicBytes() != null) - req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), null)); + req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), U.resolveClassLoader(ctx.config()))); GridDeployment dep = ctx.deploy().getGlobalDeployment( req.deploymentMode(), @@ -1103,7 +1105,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> throw new IgniteDeploymentCheckedException("Failed to obtain deployment for event filter " + "(is peer class loading turned on?): " + req); - filter = marsh.unmarshal(req.filter(), dep.classLoader()); + filter = marsh.unmarshal(req.filter(), U.resolveClassLoader(dep.classLoader(), ctx.config())); // Resource injection. ctx.resource().inject(dep, dep.deployedClass(req.filterClassName()), filter); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityUtils.java index 10bfa72..f670960 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityUtils.java @@ -110,7 +110,8 @@ class GridAffinityUtils { throw new IgniteDeploymentCheckedException("Failed to obtain affinity object (is peer class loading turned on?): " + msg); - Object src = ctx.config().getMarshaller().unmarshal(msg.source(), dep.classLoader()); + Object src = ctx.config().getMarshaller().unmarshal(msg.source(), + U.resolveClassLoader(dep.classLoader(), ctx.config())); // Resource injection. ctx.resource().inject(dep, dep.deployedClass(msg.sourceClassName()), src); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java index 3f90b3e..61b6db3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntrySerializablePredicate.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.util.tostring.GridToStringInclude; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -79,7 +80,7 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { assert p != null || bytes != null; if (p == null) { - p = ctx.marshaller().unmarshal(bytes, ldr); + p = ctx.marshaller().unmarshal(bytes, U.resolveClassLoader(ldr, ctx.gridConfig())); p.finishUnmarshal(ctx, ldr); } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java index 129cfae..c6e8bee 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeDirectResult.java @@ -24,6 +24,7 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -120,7 +121,7 @@ public class CacheInvokeDirectResult implements Message { key.finishUnmarshal(ctx.cacheObjectContext(), ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (res != null) res.finishUnmarshal(ctx.cacheObjectContext(), ldr); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java index 97d58dc..6cf6c22 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java @@ -855,6 +855,11 @@ public class GridCacheDeploymentManager<K, V> extends GridCacheSharedManagerAdap } } + Class cls = super.loadClass(name); + + if (cls != null) + return cls; + throw new ClassNotFoundException("Failed to load class [name=" + name+ ", ctx=" + deps + ']'); } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java index b6f5adf..3c2ff13 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMessage.java @@ -457,7 +457,7 @@ public abstract class GridCacheMessage implements Message { Marshaller marsh = ctx.marshaller(); for (int i = 0; i < byteCol.length; i++) - args[i] = byteCol[i] == null ? null : marsh.unmarshal(byteCol[i], ldr); + args[i] = byteCol[i] == null ? null : marsh.unmarshal(byteCol[i], U.resolveClassLoader(ldr, ctx.gridConfig())); return args; } @@ -608,7 +608,7 @@ public abstract class GridCacheMessage implements Message { Marshaller marsh = ctx.marshaller(); for (byte[] bytes : byteCol) - col.add(bytes == null ? null : marsh.<T>unmarshal(bytes, ldr)); + col.add(bytes == null ? null : marsh.<T>unmarshal(bytes, U.resolveClassLoader(ldr, ctx.gridConfig()))); return col; } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index 86e8b31..a8f3a4a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@ -3398,7 +3398,8 @@ public class GridCacheProcessor extends GridProcessorAdapter { if (ldr == null) ldr = val.getCacheStoreFactory().getClass().getClassLoader(); - marshaller.unmarshal(marshaller.marshal(val.getCacheStoreFactory()), ldr); + marshaller.unmarshal(marshaller.marshal(val.getCacheStoreFactory()), + U.resolveClassLoader(ldr, ctx.config())); } catch (IgniteCheckedException e) { throw new IgniteCheckedException("Failed to validate cache configuration. " + @@ -3407,7 +3408,7 @@ public class GridCacheProcessor extends GridProcessorAdapter { } try { - return marshaller.unmarshal(marshaller.marshal(val), U.resolveClassLoader(ctx.config().getClassLoader())); + return marshaller.unmarshal(marshaller.marshal(val), U.resolveClassLoader(ctx.config())); } catch (IgniteCheckedException e) { throw new IgniteCheckedException("Failed to validate cache configuration " + http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java index bb3f9ff..7f95ec6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java @@ -31,6 +31,7 @@ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -205,7 +206,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { finishUnmarshalCacheObjects(vals, ctx.cacheContext(cacheId), ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java index e595942..ea0f01c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java @@ -371,7 +371,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage txNodes = F.viewReadOnly(txNodesMsg, MSG_TO_COL); if (txNodesBytes != null && txNodes == null) - txNodes = ctx.marshaller().unmarshal(txNodesBytes, ldr); + txNodes = ctx.marshaller().unmarshal(txNodesBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java index d2c5aa4..34fff94 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java @@ -25,6 +25,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringBuilder; import org.apache.ignite.internal.util.tostring.GridToStringExclude; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -102,7 +103,7 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage super.finishUnmarshal(ctx, ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java index e731406..c1be30b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java @@ -27,6 +27,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheMessage; import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode; @@ -114,7 +115,7 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { super.finishUnmarshal(ctx, ldr); if (affAssignmentBytes != null) { - affAssignment = ctx.marshaller().unmarshal(affAssignmentBytes, ldr); + affAssignment = ctx.marshaller().unmarshal(affAssignmentBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); // TODO IGNITE-2110: setting 'local' for nodes not needed when IGNITE-2110 is implemented. int assignments = affAssignment.size(); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java index fb4d97d..65c9024 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java @@ -26,6 +26,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxFinishResponse; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -119,7 +120,7 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse { super.finishUnmarshal(ctx, ldr); if (checkCommittedErrBytes != null) - checkCommittedErr = ctx.marshaller().unmarshal(checkCommittedErrBytes, ldr); + checkCommittedErr = ctx.marshaller().unmarshal(checkCommittedErrBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java index f1bb323..1c7b5f0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java @@ -33,6 +33,7 @@ import org.apache.ignite.internal.processors.cache.KeyCacheObject; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -178,7 +179,7 @@ public class GridDhtAtomicUpdateResponse extends GridCacheMessage implements Gri finishUnmarshalCacheObjects(nearEvicted, cctx, ldr); - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java index 07f2e07..37fd76f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java @@ -44,6 +44,7 @@ import org.apache.ignite.internal.util.GridLongList; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.CU; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -629,10 +630,8 @@ public class GridNearAtomicUpdateRequest extends GridCacheMessage implements Gri } } - invokeArgs = unmarshalInvokeArguments(invokeArgsBytes, ctx, ldr); - if (expiryPlcBytes != null) - expiryPlc = ctx.marshaller().unmarshal(expiryPlcBytes, ldr); + expiryPlc = ctx.marshaller().unmarshal(expiryPlcBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java index b164e7e..8c55b85 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java @@ -38,6 +38,7 @@ import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.GridLongList; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -414,7 +415,7 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr super.finishUnmarshal(ctx, ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); GridCacheContext cctx = ctx.cacheContext(cacheId); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java index 4cdecec..12bf160 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java @@ -34,6 +34,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.KeyCacheObject; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -187,7 +188,8 @@ public class GridDhtForceKeysResponse extends GridCacheMessage implements GridCa info.unmarshal(cctx, ldr); } - err = ctx.marshaller().unmarshal(errBytes, ldr); + if (errBytes != null) + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java index 53c3d90..4426c44 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.GridCacheMessage; import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -190,7 +191,7 @@ public class GridDhtPartitionDemandMessage extends GridCacheMessage { super.finishUnmarshal(ctx, ldr); if (topicBytes != null) - topic = ctx.marshaller().unmarshal(topicBytes, ldr); + topic = ctx.marshaller().unmarshal(topicBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java index 0cbdc91..6194552 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java @@ -29,6 +29,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; import org.jetbrains.annotations.NotNull; @@ -157,13 +158,13 @@ public class GridDhtPartitionsFullMessage extends GridDhtPartitionsAbstractMessa super.finishUnmarshal(ctx, ldr); if (partsBytes != null && parts == null) - parts = ctx.marshaller().unmarshal(partsBytes, ldr); + parts = ctx.marshaller().unmarshal(partsBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (parts == null) parts = new HashMap<>(); if (partCntrsBytes != null && partCntrs == null) - partCntrs = ctx.marshaller().unmarshal(partCntrsBytes, ldr); + partCntrs = ctx.marshaller().unmarshal(partCntrsBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (partCntrs == null) partCntrs = new HashMap<>(); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java index c07a508..0fe4259 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; import org.jetbrains.annotations.Nullable; @@ -147,10 +148,10 @@ public class GridDhtPartitionsSingleMessage extends GridDhtPartitionsAbstractMes super.finishUnmarshal(ctx, ldr); if (partsBytes != null && parts == null) - parts = ctx.marshaller().unmarshal(partsBytes, ldr); + parts = ctx.marshaller().unmarshal(partsBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (partCntrsBytes != null) - partCntrs = ctx.marshaller().unmarshal(partCntrsBytes, ldr); + partCntrs = ctx.marshaller().unmarshal(partCntrsBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java index 15a791f..be92551 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java @@ -35,6 +35,7 @@ import org.apache.ignite.internal.processors.cache.version.GridCacheVersionable; import org.apache.ignite.internal.util.GridLeanSet; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -204,7 +205,7 @@ public class GridNearGetResponse extends GridCacheMessage implements GridCacheDe } if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetResponse.java index 42ad7ed..e8d164f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetResponse.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo; import org.apache.ignite.internal.processors.cache.GridCacheMessage; import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -187,7 +188,7 @@ public class GridNearSingleGetResponse extends GridCacheMessage implements GridC } if (errBytes != null && err == null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java index 4904ad8..4055b2a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java @@ -25,6 +25,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxFinishResponse; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -108,7 +109,7 @@ public class GridNearTxFinishResponse extends GridDistributedTxFinishResponse { super.finishUnmarshal(ctx, ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheLocalQueryFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheLocalQueryFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheLocalQueryFuture.java index 248dfa8..91ae12c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheLocalQueryFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheLocalQueryFuture.java @@ -22,6 +22,7 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.util.lang.GridPlainRunnable; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteClosure; import org.apache.ignite.lang.IgniteReducer; import org.apache.ignite.marshaller.Marshaller; @@ -112,10 +113,12 @@ public class GridCacheLocalQueryFuture<K, V, R> extends GridCacheQueryFutureAdap Marshaller marsh = cctx.marshaller(); IgniteReducer<Object, Object> rdc = qry.reducer() != null ? - marsh.<IgniteReducer<Object, Object>>unmarshal(marsh.marshal(qry.reducer()), null) : null; + marsh.<IgniteReducer<Object, Object>>unmarshal(marsh.marshal(qry.reducer()), + U.resolveClassLoader(cctx.gridConfig())) : null; IgniteClosure<Object, Object> trans = qry.transform() != null ? - marsh.<IgniteClosure<Object, Object>>unmarshal(marsh.marshal(qry.transform()), null) : null; + marsh.<IgniteClosure<Object, Object>>unmarshal(marsh.marshal(qry.transform()), + U.resolveClassLoader(cctx.gridConfig())) : null; return new GridCacheQueryInfo( true, http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java index 59d8b5b..88ebe99 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.CU; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteClosure; import org.apache.ignite.lang.IgniteReducer; @@ -318,16 +319,16 @@ public class GridCacheQueryRequest extends GridCacheMessage implements GridCache Marshaller mrsh = ctx.marshaller(); if (keyValFilterBytes != null) - keyValFilter = mrsh.unmarshal(keyValFilterBytes, ldr); + keyValFilter = mrsh.unmarshal(keyValFilterBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (rdcBytes != null) rdc = mrsh.unmarshal(rdcBytes, ldr); if (transBytes != null) - trans = mrsh.unmarshal(transBytes, ldr); + trans = mrsh.unmarshal(transBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); if (argsBytes != null) - args = mrsh.unmarshal(argsBytes, ldr); + args = mrsh.unmarshal(argsBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); } /** {@inheritDoc} */ @@ -342,8 +343,10 @@ public class GridCacheQueryRequest extends GridCacheMessage implements GridCache void beforeLocalExecution(GridCacheContext ctx) throws IgniteCheckedException { Marshaller marsh = ctx.marshaller(); - rdc = rdc != null ? marsh.<IgniteReducer<Object, Object>>unmarshal(marsh.marshal(rdc), null) : null; - trans = trans != null ? marsh.<IgniteClosure<Object, Object>>unmarshal(marsh.marshal(trans), null) : null; + rdc = rdc != null ? marsh.<IgniteReducer<Object, Object>>unmarshal(marsh.marshal(rdc), + U.resolveClassLoader(ctx.gridConfig())) : null; + trans = trans != null ? marsh.<IgniteClosure<Object, Object>>unmarshal(marsh.marshal(trans), + U.resolveClassLoader(ctx.gridConfig())) : null; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java index cce465b..2cde8f4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java @@ -33,6 +33,7 @@ import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -145,7 +146,7 @@ public class GridCacheQueryResponse extends GridCacheMessage implements GridCach super.finishUnmarshal(ctx, ldr); if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, ldr); + err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); metadata = unmarshalCollection(metaDataBytes, ctx, ldr); data = unmarshalCollection(dataBytes, ctx, ldr); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java index 28a9437..0733827 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java @@ -21,10 +21,12 @@ import java.nio.ByteBuffer; import java.util.LinkedHashMap; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -145,13 +147,13 @@ public class GridCacheSqlQuery implements Message { * @param m Marshaller. * @throws IgniteCheckedException If failed. */ - public void unmarshallParams(Marshaller m) throws IgniteCheckedException { + public void unmarshallParams(Marshaller m, GridKernalContext ctx) throws IgniteCheckedException { if (params != null) return; assert paramsBytes != null; - params = m.unmarshal(paramsBytes, null); + params = m.unmarshal(paramsBytes, U.resolveClassLoader(ctx.config())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java index 0324e41..fc14e82 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryHandler.java @@ -1244,7 +1244,7 @@ public class CacheContinuousQueryHandler<K, V> implements GridContinuousHandler if (dep == null) throw new IgniteDeploymentCheckedException("Failed to obtain deployment for class: " + clsName); - return ctx.config().getMarshaller().unmarshal(bytes, dep.classLoader()); + return ctx.config().getMarshaller().unmarshal(bytes, U.resolveClassLoader(dep.classLoader(), ctx.config())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java index ab7ada6..18fca64 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java @@ -47,6 +47,7 @@ import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.T2; import org.apache.ignite.internal.util.typedef.internal.CU; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; @@ -859,7 +860,8 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { // Unmarshal transform closure anyway if it exists. if (transformClosBytes != null && entryProcessorsCol == null) - entryProcessorsCol = ctx.marshaller().unmarshal(transformClosBytes, clsLdr); + entryProcessorsCol = ctx.marshaller().unmarshal(transformClosBytes, + U.resolveClassLoader(clsLdr, ctx.gridConfig())); if (filters == null) filters = CU.empty0(); @@ -875,7 +877,7 @@ public class IgniteTxEntry implements GridPeerDeployAware, Message { val.unmarshal(this.ctx, clsLdr); if (expiryPlcBytes != null) - expiryPlc = ctx.marshaller().unmarshal(expiryPlcBytes, clsLdr); + expiryPlc = ctx.marshaller().unmarshal(expiryPlcBytes, U.resolveClassLoader(clsLdr, ctx.gridConfig())); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java index 113ad3c..4c5a704 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheRawVersionedEntry.java @@ -29,6 +29,7 @@ import org.apache.ignite.internal.processors.cache.CacheObjectContext; import org.apache.ignite.internal.processors.cache.KeyCacheObject; import org.apache.ignite.internal.processors.datastreamer.DataStreamerEntry; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -190,7 +191,7 @@ public class GridCacheRawVersionedEntry<K, V> extends DataStreamerEntry implemen unmarshalKey(ctx, marsh); if (val == null && valBytes != null) { - val = marsh.unmarshal(valBytes, null); + val = marsh.unmarshal(valBytes, U.resolveClassLoader(ctx.kernalContext().config())); val.finishUnmarshal(ctx, null); } @@ -221,7 +222,7 @@ public class GridCacheRawVersionedEntry<K, V> extends DataStreamerEntry implemen if (key == null) { assert keyBytes != null; - key = marsh.unmarshal(keyBytes, null); + key = marsh.unmarshal(keyBytes, U.resolveClassLoader(ctx.kernalContext().config())); key.finishUnmarshal(ctx, null); } http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/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 5b764b6..75d65de 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 @@ -107,7 +107,8 @@ public class IgniteCacheObjectProcessorImpl extends GridProcessorAdapter impleme @Override public Object unmarshal(CacheObjectContext ctx, byte[] bytes, ClassLoader clsLdr) throws IgniteCheckedException { - return ctx.kernalContext().cache().context().marshaller().unmarshal(bytes, clsLdr); + return ctx.kernalContext().cache().context().marshaller().unmarshal(bytes, U.resolveClassLoader(clsLdr, + ctx.kernalContext().config())); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java index b4d79d9..043f754 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java @@ -1095,12 +1095,12 @@ public class GridClosureProcessor extends GridProcessorAdapter { } if (c.job == closure) - c.job = marsh.unmarshal(closureBytes, null); + c.job = marsh.unmarshal(closureBytes, U.resolveClassLoader(ctx.config())); else - c.job = marsh.unmarshal(marsh.marshal(c.job), null); + c.job = marsh.unmarshal(marsh.marshal(c.job), U.resolveClassLoader(ctx.config())); } else - job = marsh.unmarshal(marsh.marshal(job), null); + job = marsh.unmarshal(marsh.marshal(job), U.resolveClassLoader(ctx.config())); } else hadLocNode = true; http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java index 5ba054a..441d795 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java @@ -287,7 +287,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter { if (msg.data() == null && msg.dataBytes() != null) { try { - msg.data(marsh.unmarshal(msg.dataBytes(), null)); + msg.data(marsh.unmarshal(msg.dataBytes(), U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to process message (ignoring): " + msg, e); @@ -592,7 +592,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter { if (msg.data() == null && msg.dataBytes() != null) { try { - msg.data(marsh.unmarshal(msg.dataBytes(), null)); + msg.data(marsh.unmarshal(msg.dataBytes(), U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to process message (ignoring): " + msg, e); @@ -849,7 +849,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter { if (dep == null) throw new IgniteDeploymentCheckedException("Failed to obtain deployment for class: " + clsName); - data.p2pUnmarshal(marsh, dep.classLoader()); + data.p2pUnmarshal(marsh, U.resolveClassLoader(dep.classLoader(), ctx.config())); } hnd.p2pUnmarshal(node.id(), ctx); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java index da39209..d899c67 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamProcessor.java @@ -234,7 +234,7 @@ public class DataStreamProcessor<K, V> extends GridProcessorAdapter { Object topic; try { - topic = marsh.unmarshal(req.responseTopicBytes(), null); + topic = marsh.unmarshal(req.responseTopicBytes(), U.resolveClassLoader(null, ctx.config())); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal topic from request: " + req, e); @@ -274,7 +274,7 @@ public class DataStreamProcessor<K, V> extends GridProcessorAdapter { StreamReceiver<K, V> updater; try { - updater = marsh.unmarshal(req.updaterBytes(), clsLdr); + updater = marsh.unmarshal(req.updaterBytes(), U.resolveClassLoader(clsLdr, ctx.config())); if (updater != null) ctx.resource().injectGeneric(updater); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java index f832e4e..048fe4d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java @@ -1428,7 +1428,7 @@ public class DataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, Delayed err = ctx.config().getMarshaller().unmarshal( errBytes, - jobPda0 != null ? jobPda0.classLoader() : U.gridClassLoader()); + U.resolveClassLoader(jobPda0 != null ? jobPda0.classLoader() : null, ctx.config())); } catch (IgniteCheckedException e) { f.onDone(null, new IgniteCheckedException("Failed to unmarshal response.", e)); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java index 20bf58c..906d298 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java @@ -1018,7 +1018,7 @@ public class GridJobProcessor extends GridProcessorAdapter { if (siblings0 == null) { assert req.getSiblingsBytes() != null; - siblings0 = marsh.unmarshal(req.getSiblingsBytes(), null); + siblings0 = marsh.unmarshal(req.getSiblingsBytes(), U.resolveClassLoader(ctx.config())); } siblings = new ArrayList<>(siblings0); @@ -1031,7 +1031,7 @@ public class GridJobProcessor extends GridProcessorAdapter { if (sesAttrs == null) sesAttrs = marsh.unmarshal(req.getSessionAttributesBytes(), - dep.classLoader()); + U.resolveClassLoader(dep.classLoader(), ctx.config())); } // Note that we unmarshal session/job attributes here with proper class loader. @@ -1057,7 +1057,8 @@ public class GridJobProcessor extends GridProcessorAdapter { Map<? extends Serializable, ? extends Serializable> jobAttrs = req.getJobAttributes(); if (jobAttrs == null) - jobAttrs = marsh.unmarshal(req.getJobAttributesBytes(), dep.classLoader()); + jobAttrs = marsh.unmarshal(req.getJobAttributesBytes(), + U.resolveClassLoader(dep.classLoader(), ctx.config())); jobCtx = new GridJobContextImpl(ctx, req.getJobId(), jobAttrs); } @@ -1424,7 +1425,8 @@ public class GridJobProcessor extends GridProcessorAdapter { boolean loc = ctx.localNodeId().equals(nodeId) && !ctx.config().isMarshalLocalJobs(); Map<?, ?> attrs = loc ? req.getAttributes() : - (Map<?, ?>)marsh.unmarshal(req.getAttributesBytes(), ses.getClassLoader()); + (Map<?, ?>)marsh.unmarshal(req.getAttributesBytes(), + U.resolveClassLoader(ses.getClassLoader(), ctx.config())); if (ctx.event().isRecordable(EVT_TASK_SESSION_ATTR_SET)) { Event evt = new TaskEvent( http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java index ae6d212..164c9e7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java @@ -406,7 +406,7 @@ public class GridJobWorker extends GridWorker implements GridTimeoutObject { try { if (job == null) { - job = marsh.unmarshal(jobBytes, dep.classLoader()); + job = marsh.unmarshal(jobBytes, U.resolveClassLoader(dep.classLoader(), ctx.config())); // No need to hold reference any more. jobBytes = null; http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java index 492fa07..a97427a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/offheap/GridOffHeapProcessor.java @@ -212,7 +212,7 @@ public class GridOffHeapProcessor extends GridProcessorAdapter { if (valBytes == null) return null; - return marsh.unmarshal(valBytes, ldr == null ? U.gridClassLoader() : ldr); + return marsh.unmarshal(valBytes, U.resolveClassLoader(ldr, ctx.config())); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskCommandHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskCommandHandler.java index 232353a..6937196 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskCommandHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/task/GridTaskCommandHandler.java @@ -141,7 +141,8 @@ public class GridTaskCommandHandler extends GridRestCommandHandlerAdapter { else res.found(false); - Object topic = ctx.config().getMarshaller().unmarshal(req.topicBytes(), null); + Object topic = ctx.config().getMarshaller().unmarshal(req.topicBytes(), + U.resolveClassLoader(ctx.config())); ctx.io().send(nodeId, topic, res, SYSTEM_POOL); } @@ -439,7 +440,8 @@ public class GridTaskCommandHandler extends GridRestCommandHandlerAdapter { res = (GridTaskResultResponse)msg; try { - res.result(ctx.config().getMarshaller().unmarshal(res.resultBytes(), null)); + res.result(ctx.config().getMarshaller().unmarshal(res.resultBytes(), + U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal task result: " + res, e); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java index fc08204..d2dd5b9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java @@ -993,7 +993,8 @@ public class GridServiceProcessor extends GridProcessorAdapter { try { byte[] bytes = m.marshal(svc); - Service cp = m.unmarshal(bytes, svc.getClass().getClassLoader()); + Service cp = m.unmarshal(bytes, + U.resolveClassLoader(svc.getClass().getClassLoader(), ctx.config())); ctx.resource().inject(cp); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java index b8d1d78..0c3cf0e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java @@ -1029,7 +1029,8 @@ public class GridTaskProcessor extends GridProcessorAdapter { boolean loc = ctx.localNodeId().equals(nodeId) && !ctx.config().isMarshalLocalJobs(); Map<?, ?> attrs = loc ? msg.getAttributes() : - marsh.<Map<?, ?>>unmarshal(msg.getAttributesBytes(), task.getTask().getClass().getClassLoader()); + marsh.<Map<?, ?>>unmarshal(msg.getAttributesBytes(), + U.resolveClassLoader(task.getTask().getClass().getClassLoader(), ctx.config())); GridTaskSessionImpl ses = task.getSession(); @@ -1304,7 +1305,7 @@ public class GridTaskProcessor extends GridProcessorAdapter { if (topic == null) { assert req.topicBytes() != null; - topic = marsh.unmarshal(req.topicBytes(), null); + topic = marsh.unmarshal(req.topicBytes(), U.resolveClassLoader(ctx.config())); } boolean loc = ctx.localNodeId().equals(nodeId); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java index 59d3f90..dc86343 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java @@ -765,13 +765,16 @@ class GridTaskWorker<T, R> extends GridWorker implements GridTimeoutObject { try { boolean loc = ctx.localNodeId().equals(res.getNodeId()) && !ctx.config().isMarshalLocalJobs(); - Object res0 = loc ? res.getJobResult() : marsh.unmarshal(res.getJobResultBytes(), clsLdr); + Object res0 = loc ? res.getJobResult() : marsh.unmarshal(res.getJobResultBytes(), + U.resolveClassLoader(clsLdr, ctx.config())); IgniteException ex = loc ? res.getException() : - marsh.<IgniteException>unmarshal(res.getExceptionBytes(), clsLdr); + marsh.<IgniteException>unmarshal(res.getExceptionBytes(), + U.resolveClassLoader(clsLdr, ctx.config())); Map<Object, Object> attrs = loc ? res.getJobAttributes() : - marsh.<Map<Object, Object>>unmarshal(res.getJobAttributesBytes(), clsLdr); + marsh.<Map<Object, Object>>unmarshal(res.getJobAttributesBytes(), + U.resolveClassLoader(clsLdr, ctx.config())); jobRes.onResponse(res0, ex, attrs, res.isCancelled()); http://git-wip-us.apache.org/repos/asf/ignite/blob/03e5d9c6/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java index af2114e..ec31cbf 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java @@ -2193,10 +2193,26 @@ public abstract class IgniteUtils { } /** - * @return Class loader passed as an argument or classloader used to load Ignite itself in case argument is null. + * @return ClassLoader at IgniteConfiguration in case it is not null or + * ClassLoader used to start Ignite. */ - public static ClassLoader resolveClassLoader(ClassLoader ldr) { - return ldr != null ? ldr : gridClassLoader; + public static ClassLoader resolveClassLoader(IgniteConfiguration cfg) { + return resolveClassLoader(null, cfg); + } + + /** + * @return ClassLoader passed as param in case it is not null or + * ClassLoader at IgniteConfiguration in case it is not null or + * ClassLoader used to start Ignite. + */ + public static ClassLoader resolveClassLoader(ClassLoader ldr, IgniteConfiguration cfg) { + assert cfg != null; + + return (ldr != null & ldr != gridClassLoader) ? + ldr : + cfg.getClassLoader() != null ? + cfg.getClassLoader() : + gridClassLoader; } /**
