IGNITE-2649 - Ignition.localIgnite() unreliable under Gateways and cause wrong components deserialization.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/97ce8fbb Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/97ce8fbb Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/97ce8fbb Branch: refs/heads/ignite-2649 Commit: 97ce8fbbce3ccdf99d05d5e36899fe0a54deb5e7 Parents: 71ef652 Author: dkarachentsev <dkarachent...@gridgain.com> Authored: Wed Aug 3 13:26:39 2016 +0300 Committer: dkarachentsev <dkarachent...@gridgain.com> Committed: Wed Aug 3 13:26:40 2016 +0300 ---------------------------------------------------------------------- .../socket/WordsSocketStreamerServer.java | 3 +- .../rest/protocols/tcp/MockNioSession.java | 7 + .../rendezvous/RendezvousAffinityFunction.java | 5 +- .../cache/store/jdbc/CacheJdbcBlobStore.java | 5 +- .../internal/GridEventConsumeHandler.java | 30 +-- .../internal/GridJobSiblingsResponse.java | 6 +- .../internal/GridMessageListenHandler.java | 14 +- .../org/apache/ignite/internal/IgnitionEx.java | 30 ++- .../internal/binary/BinaryEnumObjectImpl.java | 3 +- .../internal/binary/BinaryObjectImpl.java | 18 +- .../ignite/internal/binary/BinaryUtils.java | 4 +- .../internal/binary/BinaryWriterExImpl.java | 3 +- .../client/GridClientConfiguration.java | 1 - .../connection/GridClientNioTcpConnection.java | 4 +- .../router/impl/GridTcpRouterNioParser.java | 3 +- .../checkpoint/GridCheckpointManager.java | 11 +- .../managers/communication/GridIoManager.java | 17 +- .../deployment/GridDeploymentCommunication.java | 6 +- .../eventstorage/GridEventStorageManager.java | 26 +- .../swapspace/GridSwapSpaceManager.java | 5 +- .../processors/affinity/GridAffinityUtils.java | 7 +- .../cache/CacheEntrySerializablePredicate.java | 6 +- .../cache/CacheInvokeDirectResult.java | 9 +- .../processors/cache/GridCacheMessage.java | 13 +- .../processors/cache/GridCacheProcessor.java | 7 +- .../processors/cache/GridCacheUtils.java | 3 +- .../GridDistributedLockResponse.java | 9 +- .../GridDistributedTxPrepareRequest.java | 6 +- .../GridDistributedTxPrepareResponse.java | 9 +- .../dht/GridDhtAffinityAssignmentResponse.java | 6 +- .../dht/GridDhtTxFinishResponse.java | 9 +- .../dht/atomic/GridDhtAtomicUpdateResponse.java | 6 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 9 +- .../atomic/GridNearAtomicUpdateResponse.java | 9 +- .../dht/preloader/GridDhtForceKeysResponse.java | 9 +- .../GridDhtPartitionDemandMessage.java | 9 +- .../preloader/GridDhtPartitionsFullMessage.java | 17 +- .../GridDhtPartitionsSingleMessage.java | 17 +- .../distributed/near/GridNearGetResponse.java | 9 +- .../near/GridNearSingleGetResponse.java | 9 +- .../near/GridNearTxFinishResponse.java | 9 +- .../cache/query/GridCacheLocalQueryFuture.java | 13 +- .../cache/query/GridCacheQueryRequest.java | 31 ++- .../cache/query/GridCacheQueryResponse.java | 9 +- .../cache/query/GridCacheSqlQuery.java | 9 +- .../continuous/CacheContinuousQueryHandler.java | 6 +- .../jdbc/GridCacheQueryJdbcMetadataTask.java | 5 +- .../query/jdbc/GridCacheQueryJdbcTask.java | 8 +- .../cache/transactions/IgniteTxEntry.java | 11 +- .../version/GridCacheRawVersionedEntry.java | 11 +- .../IgniteCacheObjectProcessorImpl.java | 5 +- .../closure/GridClosureProcessor.java | 9 +- .../continuous/GridContinuousProcessor.java | 13 +- .../processors/continuous/StartRequestData.java | 13 +- .../datastreamer/DataStreamProcessor.java | 13 +- .../datastreamer/DataStreamerImpl.java | 10 +- .../processors/igfs/IgfsAckMessage.java | 15 +- .../igfs/IgfsCommunicationMessage.java | 8 +- .../internal/processors/igfs/IgfsContext.java | 4 +- .../processors/igfs/IgfsDataManager.java | 2 +- .../processors/igfs/IgfsDeleteMessage.java | 16 +- .../igfs/IgfsFragmentizerManager.java | 2 +- .../internal/processors/igfs/IgfsImpl.java | 2 +- .../internal/processors/igfs/IgfsPaths.java | 7 +- .../processors/job/GridJobProcessor.java | 34 +-- .../internal/processors/job/GridJobWorker.java | 10 +- .../offheap/GridOffHeapProcessor.java | 5 +- .../handlers/task/GridTaskCommandHandler.java | 13 +- .../rest/protocols/tcp/GridTcpRestParser.java | 33 ++- .../service/GridServiceProcessor.java | 11 +- .../processors/task/GridTaskProcessor.java | 12 +- .../processors/task/GridTaskWorker.java | 21 +- .../internal/util/ipc/IpcToNioAdapter.java | 7 +- .../ignite/internal/util/nio/GridNioServer.java | 12 +- .../internal/util/nio/GridNioSession.java | 7 + .../internal/util/nio/GridNioSessionImpl.java | 14 +- .../util/nio/GridSelectorNioSessionImpl.java | 7 +- .../ignite/marshaller/MarshallerUtils.java | 241 +++++++++++++++++++ .../sharedfs/SharedFsCheckpointSpi.java | 6 +- .../sharedfs/SharedFsTimeoutTask.java | 10 +- .../spi/checkpoint/sharedfs/SharedFsUtils.java | 13 +- .../communication/tcp/TcpCommunicationSpi.java | 1 + .../ignite/spi/discovery/tcp/ClientImpl.java | 15 +- .../ignite/spi/discovery/tcp/ServerImpl.java | 47 ++-- .../spi/discovery/tcp/TcpDiscoverySpi.java | 14 +- .../TcpDiscoveryMulticastIpFinder.java | 38 ++- .../TcpDiscoveryCustomEventMessage.java | 23 +- .../spi/swapspace/file/FileSwapSpaceSpi.java | 3 +- .../stream/socket/SocketMessageConverter.java | 5 +- .../ignite/stream/socket/SocketStreamer.java | 8 +- .../GridBinaryCacheSerializationTest.java | 113 +++++++++ .../nio/impl/GridNioFilterChainSelfTest.java | 6 + .../spi/discovery/tcp/TcpDiscoverySelfTest.java | 2 +- .../stream/socket/SocketStreamerSelfTest.java | 4 +- .../HadoopExternalCommunication.java | 5 + .../communication/HadoopIpcToNioAdapter.java | 6 +- .../communication/HadoopMarshallerFilter.java | 6 +- .../processors/query/h2/IgniteH2Indexing.java | 5 +- .../h2/twostep/GridReduceQueryExecutor.java | 2 +- .../cache/websession/WebSessionFilter.java | 12 +- .../ignite/cache/websession/WebSessionV2.java | 13 +- 101 files changed, 1038 insertions(+), 356 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/socket/WordsSocketStreamerServer.java ---------------------------------------------------------------------- diff --git a/examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/socket/WordsSocketStreamerServer.java b/examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/socket/WordsSocketStreamerServer.java index 814d235..c1727a55 100644 --- a/examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/socket/WordsSocketStreamerServer.java +++ b/examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/socket/WordsSocketStreamerServer.java @@ -35,6 +35,7 @@ import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.stream.StreamSingleTupleExtractor; import org.apache.ignite.stream.socket.SocketMessageConverter; import org.apache.ignite.stream.socket.SocketStreamer; +import org.apache.ignite.configuration.IgniteConfiguration; /** * Example demonstrates streaming of data from external components into Ignite cache. @@ -99,7 +100,7 @@ public class WordsSocketStreamerServer { // Converter from zero-terminated string to Java strings. sockStmr.setConverter(new SocketMessageConverter<String>() { - @Override public String convert(byte[] msg) { + @Override public String convert(byte[] msg, IgniteConfiguration cfg) { try { return new String(msg, "ASCII"); } http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/MockNioSession.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/MockNioSession.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/MockNioSession.java index c82c73e..e4efc78 100644 --- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/MockNioSession.java +++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/protocols/tcp/MockNioSession.java @@ -18,6 +18,8 @@ package org.apache.ignite.internal.processors.rest.protocols.tcp; import java.net.InetSocketAddress; + +import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.util.lang.GridMetadataAwareAdapter; import org.apache.ignite.internal.util.nio.GridNioFinishedFuture; import org.apache.ignite.internal.util.nio.GridNioFuture; @@ -139,4 +141,9 @@ public class MockNioSession extends GridMetadataAwareAdapter implements GridNioS @Nullable @Override public GridNioRecoveryDescriptor recoveryDescriptor() { return null; } + + /** {@inheritDoc} */ + @Override public IgniteConfiguration igniteConfiguration() { + return null; + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java index 37258d4..8a84e9f 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java @@ -42,6 +42,7 @@ import org.apache.ignite.cache.affinity.AffinityNodeHashResolver; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.internal.GridKernalContextImpl; import org.apache.ignite.internal.processors.cache.GridCacheUtils; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.A; @@ -49,6 +50,7 @@ import org.apache.ignite.internal.util.typedef.internal.LT; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteBiTuple; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.resources.LoggerResource; import org.jetbrains.annotations.Nullable; @@ -335,7 +337,8 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza try { ByteArrayOutputStream out = new ByteArrayOutputStream(); - byte[] nodeHashBytes = ignite.configuration().getMarshaller().marshal(nodeHash); + byte[] nodeHashBytes = MarshallerUtils.marshal( + ignite.configuration().getMarshaller(), nodeHash, ignite.configuration()); out.write(U.intToBytes(part), 0, 4); // Avoid IOException. out.write(nodeHashBytes, 0, nodeHashBytes.length); // Avoid IOException. http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java index 147f6c9..d34adda 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheJdbcBlobStore.java @@ -44,6 +44,7 @@ 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.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.resources.CacheStoreSessionResource; import org.apache.ignite.resources.IgniteInstanceResource; @@ -560,7 +561,7 @@ public class CacheJdbcBlobStore<K, V> extends CacheStoreAdapter<K, V> { * @throws IgniteCheckedException If failed to convert. */ protected byte[] toBytes(Object obj) throws IgniteCheckedException { - return marsh.marshal(obj); + return MarshallerUtils.marshal(marsh, obj, ignite.configuration()); } /** @@ -575,7 +576,7 @@ public class CacheJdbcBlobStore<K, V> extends CacheStoreAdapter<K, V> { if (bytes == null || bytes.length == 0) return null; - return marsh.unmarshal(bytes, getClass().getClassLoader()); + return MarshallerUtils.unmarshal(marsh, bytes, getClass().getClassLoader(), ignite.configuration()); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 19bf1a7..e99c2af 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 @@ -51,6 +51,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.jetbrains.annotations.Nullable; import static org.apache.ignite.events.EventType.EVTS_ALL; @@ -219,7 +220,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { if (cctx.deploymentEnabled() && ctx.discovery().cacheNode(node, cacheName)) { - wrapper.p2pMarshal(ctx.config().getMarshaller()); + wrapper.p2pMarshal(ctx); wrapper.cacheName = cacheName; @@ -338,7 +339,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { } try { - wrapper.p2pUnmarshal(ctx.config().getMarshaller(), U.resolveClassLoader(ldr, ctx.config())); + wrapper.p2pUnmarshal(ctx, U.resolveClassLoader(ldr, ctx.config())); } catch (IgniteCheckedException e) { U.error(ctx.log(getClass()), "Failed to unmarshal event.", e); @@ -370,7 +371,7 @@ class GridEventConsumeHandler implements GridContinuousHandler { depInfo = new GridDeploymentInfoBean(dep); - filterBytes = ctx.config().getMarshaller().marshal(filter); + filterBytes = MarshallerUtils.marshal(ctx.config().getMarshaller(), filter, ctx.gridName()); } } @@ -387,7 +388,8 @@ class GridEventConsumeHandler implements GridContinuousHandler { if (dep == null) throw new IgniteDeploymentCheckedException("Failed to obtain deployment for class: " + clsName); - filter = ctx.config().getMarshaller().unmarshal(filterBytes, U.resolveClassLoader(dep.classLoader(), ctx.config())); + filter = MarshallerUtils.unmarshal(ctx.config().getMarshaller(), filterBytes, + U.resolveClassLoader(dep.classLoader(), ctx.config()), ctx.gridName()); } } @@ -484,27 +486,27 @@ class GridEventConsumeHandler implements GridContinuousHandler { } /** - * @param marsh Marshaller. - * @throws IgniteCheckedException In case of error. + * @param ctx Kernal context. + * @throws IgniteCheckedException */ - void p2pMarshal(Marshaller marsh) throws IgniteCheckedException { - assert marsh != null; + void p2pMarshal(final GridKernalContext ctx) throws IgniteCheckedException { + assert ctx.config().getMarshaller() != null; - bytes = marsh.marshal(evt); + bytes = MarshallerUtils.marshal(ctx.config().getMarshaller(), evt, ctx.gridName()); } /** - * @param marsh Marshaller. + * @param ctx Kernal context. * @param ldr Class loader. - * @throws IgniteCheckedException In case of error. + * @throws IgniteCheckedException */ - void p2pUnmarshal(Marshaller marsh, @Nullable ClassLoader ldr) throws IgniteCheckedException { - assert marsh != null; + void p2pUnmarshal(final GridKernalContext ctx, @Nullable ClassLoader ldr) throws IgniteCheckedException { + assert ctx.config().getMarshaller() != null; assert evt == null; assert bytes != null; - evt = marsh.unmarshal(bytes, ldr); + evt = MarshallerUtils.unmarshal(ctx.config().getMarshaller(), bytes, ldr, ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java index aa81cc5..714fb13 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridJobSiblingsResponse.java @@ -24,6 +24,7 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.compute.ComputeJobSibling; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -68,13 +69,14 @@ public class GridJobSiblingsResponse implements Message { /** * @param marsh Marshaller. + * @param ctx kernal context. * @throws IgniteCheckedException In case of error. */ - public void unmarshalSiblings(Marshaller marsh) throws IgniteCheckedException { + public void unmarshalSiblings(Marshaller marsh, final GridKernalContext ctx) throws IgniteCheckedException { assert marsh != null; if (siblingsBytes != null) - siblings = marsh.unmarshal(siblingsBytes, null); + siblings = MarshallerUtils.unmarshal(marsh, siblingsBytes, null, ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 0ac6877..8984313 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 @@ -35,6 +35,7 @@ import org.apache.ignite.internal.util.lang.GridPeerDeployAware; 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.marshaller.MarshallerUtils; import org.jetbrains.annotations.Nullable; /** @@ -159,9 +160,9 @@ public class GridMessageListenHandler implements GridContinuousHandler { assert ctx.config().isPeerClassLoadingEnabled(); if (topic != null) - topicBytes = ctx.config().getMarshaller().marshal(topic); + topicBytes = MarshallerUtils.marshal(ctx.config().getMarshaller(), topic, ctx.gridName()); - predBytes = ctx.config().getMarshaller().marshal(pred); + predBytes = MarshallerUtils.marshal(ctx.config().getMarshaller(), pred, ctx.gridName()); // Deploy only listener, as it is very likely to be of some user class. GridPeerDeployAware pda = U.peerDeployAware(pred); @@ -192,10 +193,13 @@ public class GridMessageListenHandler implements GridContinuousHandler { ClassLoader ldr = dep.classLoader(); - if (topicBytes != null) - topic = ctx.config().getMarshaller().unmarshal(topicBytes, U.resolveClassLoader(ldr, ctx.config())); + if (topicBytes != null) { + topic = MarshallerUtils.unmarshal(ctx.config().getMarshaller(), topicBytes, + U.resolveClassLoader(ldr, ctx.config()), ctx.gridName()); + } - pred = ctx.config().getMarshaller().unmarshal(predBytes, U.resolveClassLoader(ldr, ctx.config())); + pred = MarshallerUtils.unmarshal(ctx.config().getMarshaller(), predBytes, + U.resolveClassLoader(ldr, ctx.config()), ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index 6f5b9a6..8f882ef 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -166,6 +166,9 @@ public class IgnitionEx { private static final Collection<IgnitionListener> lsnrs = new GridConcurrentHashSet<>(4); /** */ + private static final ThreadLocal<String> GRID_NAME_THREAD_LOC = new ThreadLocal<>(); + + /** */ private static ThreadLocal<Boolean> daemon = new ThreadLocal<Boolean>() { @Override protected Boolean initialValue() { return false; @@ -1279,17 +1282,20 @@ public class IgnitionEx { } /** - * Gets the grid, which is owner of current thread. An Exception is thrown if + * Gets a name of the grid from thread local config, which is owner of current thread. An Exception is thrown if * current thread is not an {@link IgniteThread}. * * @return Grid instance related to current thread * @throws IllegalArgumentException Thrown to indicate, that current thread is not an {@link IgniteThread}. */ public static IgniteKernal localIgnite() throws IllegalArgumentException { - if (Thread.currentThread() instanceof IgniteThread) + if (GRID_NAME_THREAD_LOC.get() != null) + return gridx(GRID_NAME_THREAD_LOC.get()); + else if (Thread.currentThread() instanceof IgniteThread) return gridx(((IgniteThread)Thread.currentThread()).getGridName()); else - throw new IllegalArgumentException("This method should be accessed under " + IgniteThread.class.getName()); + throw new IllegalArgumentException("Ignite conf thread local must be set or" + + " this method should be accessed under " + IgniteThread.class.getName()); } /** @@ -1355,6 +1361,24 @@ public class IgnitionEx { } /** + * Set ignite config to thread local. + * + * @param name Grid name. + */ + public static void setGridNameThreadLocal(final String name) { + GRID_NAME_THREAD_LOC.set(name); + } + + /** + * Get ignite config from thread local. + * + * @return Grid name. + */ + public static String getGridNameThreadLocal() { + return GRID_NAME_THREAD_LOC.get(); + } + + /** * Start context encapsulates all starting parameters. */ private static final class GridStartContext { http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java index afd0bdc..489220e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java @@ -33,6 +33,7 @@ import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.CacheObjectContext; import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl; import org.apache.ignite.internal.util.typedef.internal.SB; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; import org.jetbrains.annotations.Nullable; @@ -243,7 +244,7 @@ public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, Cac /** {@inheritDoc} */ @Override public byte[] valueBytes(CacheObjectContext cacheCtx) throws IgniteCheckedException { - return ctx.marshaller().marshal(this); + return MarshallerUtils.marshal(ctx.marshaller(), this, ctx.configuration()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java index 3563fba..2296a3d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java @@ -21,8 +21,10 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.binary.BinaryObject; import org.apache.ignite.binary.BinaryObjectException; import org.apache.ignite.binary.BinaryType; +import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.IgniteCodeGeneratingFail; +import org.apache.ignite.internal.IgnitionEx; import org.apache.ignite.internal.binary.streams.BinaryHeapInputStream; import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.CacheObjectContext; @@ -538,8 +540,18 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern * @return Object. */ private Object deserializeValue(@Nullable CacheObjectContext coCtx) { - BinaryReaderExImpl reader = reader(null, - coCtx != null ? coCtx.kernalContext().config().getClassLoader() : ctx.configuration().getClassLoader()); + final String gridName = IgnitionEx.getGridNameThreadLocal(); + + final ClassLoader cl; + + if (coCtx != null) { + IgnitionEx.setGridNameThreadLocal(coCtx.kernalContext().config().getGridName()); + + cl = coCtx.kernalContext().config().getClassLoader(); + } else + cl = ctx.configuration().getClassLoader(); + + final BinaryReaderExImpl reader = reader(null, cl); Object obj0 = reader.deserialize(); @@ -550,6 +562,8 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern if (coCtx != null && coCtx.storeValue()) obj = obj0; + IgnitionEx.setGridNameThreadLocal(gridName); + return obj0; } http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 b6a95fb..0ce4916 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 @@ -61,6 +61,7 @@ import org.apache.ignite.internal.binary.streams.BinaryInputStream; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.lang.IgniteUuid; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -1589,7 +1590,8 @@ public class BinaryUtils { ByteArrayInputStream input = new ByteArrayInputStream(in.array(), in.position(), len); try { - return ctx.optimizedMarsh().unmarshal(input, U.resolveClassLoader(clsLdr, ctx.configuration())); + return MarshallerUtils.unmarshal(ctx.optimizedMarsh(), input, + U.resolveClassLoader(clsLdr, ctx.configuration()), ctx.configuration().getGridName()); } catch (IgniteCheckedException e) { throw new BinaryObjectException("Failed to unmarshal object with optimized marshaller", e); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java index 30710f4..fab379a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java @@ -36,6 +36,7 @@ import org.apache.ignite.binary.BinaryWriter; import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream; import org.apache.ignite.internal.binary.streams.BinaryOutputStream; import org.apache.ignite.internal.util.typedef.internal.A; +import org.apache.ignite.marshaller.MarshallerUtils; import org.jetbrains.annotations.Nullable; import static java.nio.charset.StandardCharsets.UTF_8; @@ -157,7 +158,7 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje out.writeByte(GridBinaryMarshaller.OPTM_MARSH); try { - byte[] arr = ctx.optimizedMarsh().marshal(obj); + byte[] arr = MarshallerUtils.marshal(ctx.optimizedMarsh(), obj, ctx.configuration()); writeInt(arr.length); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientConfiguration.java index e9d2958..cac1bb3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientConfiguration.java @@ -157,7 +157,6 @@ public class GridClientConfiguration { tcpNoDelay = cfg.isTcpNoDelay(); topRefreshFreq = cfg.getTopologyRefreshFrequency(); daemon = cfg.isDaemon(); - marshaller = cfg.getMarshaller(); setDataConfigurations(cfg.getDataConfigurations()); } http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java index 8937504..c91f085 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientNioTcpConnection.java @@ -78,6 +78,7 @@ import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey; import org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter; import org.apache.ignite.internal.util.typedef.CI1; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.marshaller.MarshallerUtils; import org.jetbrains.annotations.Nullable; import static java.util.concurrent.TimeUnit.MILLISECONDS; @@ -539,7 +540,8 @@ public class GridClientNioTcpConnection extends GridClientConnection { GridClientMessage res0 = res; if (res instanceof GridRouterResponse) { - res0 = marsh.unmarshal(((GridRouterResponse)res).body()); + res0 = MarshallerUtils.unmarshal(marsh, ((GridRouterResponse)res).body(), + ses.igniteConfiguration().getGridName()); res0.requestId(res.requestId()); res0.clientId(res.clientId()); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterNioParser.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterNioParser.java b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterNioParser.java index 83a6869..77b9f82 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterNioParser.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterNioParser.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.rest.client.message.GridRouterRespo import org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestParser; import org.apache.ignite.internal.util.nio.GridNioSession; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.marshaller.MarshallerUtils; import static org.apache.ignite.internal.processors.rest.protocols.tcp.GridMemcachedMessage.IGNITE_REQ_FLAG; @@ -85,7 +86,7 @@ class GridTcpRouterNioParser extends GridTcpRestParser { GridClientMessage clientMsg = (GridClientMessage)msg; - ByteBuffer res = marsh.marshal(msg, 45); + ByteBuffer res = MarshallerUtils.marshal(marsh, msg, 45, ses.igniteConfiguration().getGridName()); ByteBuffer slice = res.slice(); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 6b95dad..a2db860 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 @@ -44,6 +44,7 @@ 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.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.checkpoint.CheckpointListener; import org.apache.ignite.spi.checkpoint.CheckpointSpi; @@ -173,7 +174,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { try { switch (scope) { case GLOBAL_SCOPE: { - byte[] data = state == null ? null : marsh.marshal(state); + byte[] data = state == null ? null : MarshallerUtils.marshal(marsh, state, ctx.gridName()); saved = getSpi(ses.getCheckpointSpi()).saveCheckpoint(key, data, timeout, override); @@ -204,7 +205,7 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { timeout = ses.getEndTime() - now; // Save it first to avoid getting null value on another node. - byte[] data = state == null ? null : marsh.marshal(state); + byte[] data = state == null ? null : MarshallerUtils.marshal(marsh, state, ctx.gridName()); Set<String> keys = keyMap.get(ses.getId()); @@ -337,8 +338,10 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { Serializable state = null; // Always deserialize with task/session class loader. - if (data != null) - state = marsh.unmarshal(data, U.resolveClassLoader(ses.getClassLoader(), ctx.config())); + if (data != null) { + state = MarshallerUtils.unmarshal(marsh, data, + U.resolveClassLoader(ses.getClassLoader(), ctx.config()), ctx.gridName()); + } record(EVT_CHECKPOINT_LOADED, key); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 8ba6a1c..ff5b780 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 @@ -67,6 +67,7 @@ import org.apache.ignite.lang.IgniteInClosure; import org.apache.ignite.lang.IgniteRunnable; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.IoPool; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageFactory; @@ -594,7 +595,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa int topicOrd = msg.topicOrdinal(); msg.topic(topicOrd >= 0 ? GridTopic.fromOrdinal(topicOrd) : - marsh.unmarshal(msg.topicBytes(), U.resolveClassLoader(ctx.config()))); + MarshallerUtils.unmarshal(marsh, msg.topicBytes(), U.resolveClassLoader(ctx.config()), ctx.gridName())); } if (!started) { @@ -1117,7 +1118,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa } else { if (topicOrd < 0) - ioMsg.topicBytes(marsh.marshal(topic)); + ioMsg.topicBytes(MarshallerUtils.marshal(marsh, topic, ctx.gridName())); try { if ((CommunicationSpi)getSpi() instanceof TcpCommunicationSpi) @@ -1377,10 +1378,10 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa byte[] serTopic = null; if (!loc) { - serMsg = marsh.marshal(msg); + serMsg = MarshallerUtils.marshal(marsh, msg, ctx.gridName()); if (topic != null) - serTopic = marsh.marshal(topic); + serTopic = MarshallerUtils.marshal(marsh, topic, ctx.gridName()); } GridDeployment dep = null; @@ -2037,8 +2038,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa // Unmarshall message topic if needed. if (msgTopic == null && msgTopicBytes != null) { - msgTopic = marsh.unmarshal(msgTopicBytes, - U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config())); + msgTopic = MarshallerUtils.unmarshal(marsh, msgTopicBytes, + U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config()), ctx.gridName()); ioMsg.topic(msgTopic); // Save topic to avoid future unmarshallings. } @@ -2047,8 +2048,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa return; if (msgBody == null) { - msgBody = marsh.unmarshal(ioMsg.bodyBytes(), - U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config())); + msgBody = MarshallerUtils.unmarshal(marsh, ioMsg.bodyBytes(), + U.resolveClassLoader(dep != null ? dep.classLoader() : null, ctx.config()), ctx.gridName()); ioMsg.body(msgBody); // Save body to avoid future unmarshallings. } http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 76bd6e3..ba3b829 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 @@ -40,6 +40,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteNotPeerDeployable; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.Message; import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; @@ -183,7 +184,8 @@ class GridDeploymentCommunication { if (req.responseTopic() == null) { try { - req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), U.resolveClassLoader(ctx.config()))); + req.responseTopic(MarshallerUtils.unmarshal(marsh, req.responseTopicBytes(), + U.resolveClassLoader(ctx.config()), ctx.gridName())); } catch (IgniteCheckedException e) { U.error(log, "Failed to process deployment request (will ignore): " + req, e); @@ -444,7 +446,7 @@ class GridDeploymentCommunication { long start = U.currentTimeMillis(); if (req.responseTopic() != null && !ctx.localNodeId().equals(dstNode.id())) - req.responseTopicBytes(marsh.marshal(req.responseTopic())); + req.responseTopicBytes(MarshallerUtils.marshal(marsh, req.responseTopic(), ctx.gridName())); ctx.io().send(dstNode, TOPIC_CLASSLOAD, req, GridIoPolicy.P2P_POOL); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 0095707..233110b 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 @@ -58,6 +58,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.security.SecurityPermission; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.eventstorage.EventStorageSpi; @@ -891,12 +892,12 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> try { if (res.eventsBytes() != null) - res.events(marsh.<Collection<Event>>unmarshal(res.eventsBytes(), - U.resolveClassLoader(ctx.config()))); + res.events(MarshallerUtils.<Collection<Event>>unmarshal(marsh, res.eventsBytes(), + U.resolveClassLoader(ctx.config()), ctx.gridName())); if (res.exceptionBytes() != null) - res.exception(marsh.<Throwable>unmarshal(res.exceptionBytes(), - U.resolveClassLoader(ctx.config()))); + res.exception(MarshallerUtils.<Throwable>unmarshal(marsh, res.exceptionBytes(), + U.resolveClassLoader(ctx.config()), ctx.gridName())); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal events query response: " + msg, e); @@ -932,7 +933,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> ioMgr.addMessageListener(resTopic, resLsnr); - byte[] serFilter = marsh.marshal(p); + byte[] serFilter = MarshallerUtils.marshal(marsh, p, ctx.gridName()); GridDeployment dep = ctx.deploy().deploy(p.getClass(), U.detectClassLoader(p.getClass())); @@ -1023,7 +1024,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> ctx.io().send(locNode, topic, msg, plc); if (!rmtNodes.isEmpty()) { - msg.responseTopicBytes(marsh.marshal(msg.responseTopic())); + msg.responseTopicBytes(MarshallerUtils.marshal(marsh, msg.responseTopic(), ctx.gridName())); ctx.io().send(rmtNodes, topic, msg, plc); } @@ -1088,8 +1089,10 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> Collection<Event> evts; try { - if (req.responseTopicBytes() != null) - req.responseTopic(marsh.unmarshal(req.responseTopicBytes(), U.resolveClassLoader(ctx.config()))); + if (req.responseTopicBytes() != null) { + req.responseTopic(MarshallerUtils.unmarshal(marsh, req.responseTopicBytes(), + U.resolveClassLoader(ctx.config()), ctx.gridName())); + } GridDeployment dep = ctx.deploy().getGlobalDeployment( req.deploymentMode(), @@ -1105,7 +1108,8 @@ 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(), U.resolveClassLoader(dep.classLoader(), ctx.config())); + filter = MarshallerUtils.unmarshal(marsh, req.filter(), + U.resolveClassLoader(dep.classLoader(), ctx.config()), ctx.gridName()); // Resource injection. ctx.resource().inject(dep, dep.deployedClass(req.filterClassName()), filter); @@ -1140,8 +1144,8 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> log.debug("Sending event query response to node [nodeId=" + nodeId + "res=" + res + ']'); if (!ctx.localNodeId().equals(nodeId)) { - res.eventsBytes(marsh.marshal(res.events())); - res.exceptionBytes(marsh.marshal(res.exception())); + res.eventsBytes(MarshallerUtils.marshal(marsh, res.events(), ctx.gridName())); + res.exceptionBytes(MarshallerUtils.marshal(marsh, res.exception(), ctx.gridName())); } ctx.io().send(node, req.responseTopic(), res, PUBLIC_POOL); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java index 437603a..b5e18d1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java @@ -32,6 +32,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiInClosure; import org.apache.ignite.lang.IgniteInClosure; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.spi.IgniteSpiCloseableIterator; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.swapspace.SwapContext; @@ -400,7 +401,7 @@ public class GridSwapSpaceManager extends GridManagerAdapter<SwapSpaceSpi> { if (swapBytes == null) return null; - return marsh.unmarshal(swapBytes, ldr != null ? ldr : U.gridClassLoader()); + return MarshallerUtils.unmarshal(marsh, swapBytes, ldr != null ? ldr : U.gridClassLoader(), ctx.gridName()); } /** @@ -411,7 +412,7 @@ public class GridSwapSpaceManager extends GridManagerAdapter<SwapSpaceSpi> { * @throws IgniteCheckedException If failed. */ private byte[] marshal(Object obj) throws IgniteCheckedException { - return ctx.config().getMarshaller().marshal(obj); + return MarshallerUtils.marshal(marsh, obj, ctx.gridName()); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 f670960..e5d2085 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 @@ -37,6 +37,7 @@ import org.apache.ignite.internal.processors.task.GridInternal; import org.apache.ignite.internal.util.lang.GridTuple3; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.resources.LoggerResource; import org.jetbrains.annotations.NotNull; @@ -77,7 +78,7 @@ class GridAffinityUtils { throw new IgniteDeploymentCheckedException("Failed to deploy affinity object with class: " + cls.getName()); return new GridAffinityMessage( - ctx.config().getMarshaller().marshal(o), + MarshallerUtils.marshal(ctx.config().getMarshaller(), o, ctx.gridName()), cls.getName(), dep.classLoaderId(), dep.deployMode(), @@ -110,8 +111,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(), - U.resolveClassLoader(dep.classLoader(), ctx.config())); + Object src = MarshallerUtils.unmarshal(ctx.config().getMarshaller(), msg.source(), + U.resolveClassLoader(dep.classLoader(), ctx.config()), ctx.gridName()); // Resource injection. ctx.resource().inject(dep, dep.deployedClass(msg.sourceClassName()), src); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 61b6db3..d0837bd 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.marshaller.MarshallerUtils; 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; @@ -80,7 +81,8 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { assert p != null || bytes != null; if (p == null) { - p = ctx.marshaller().unmarshal(bytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + p = MarshallerUtils.unmarshal(ctx.marshaller(), bytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); p.finishUnmarshal(ctx, ldr); } @@ -92,7 +94,7 @@ public class CacheEntrySerializablePredicate implements CacheEntryPredicate { p.prepareMarshal(ctx); - bytes = ctx.marshaller().marshal(p); + bytes = MarshallerUtils.marshal(ctx.marshaller(), p, ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 c6e8bee..a8d9caa 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.marshaller.MarshallerUtils; 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; @@ -106,7 +107,7 @@ public class CacheInvokeDirectResult implements Message { key.prepareMarshal(ctx.cacheObjectContext()); if (err != null) - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); if (res != null) res.prepareMarshal(ctx.cacheObjectContext()); @@ -120,8 +121,10 @@ public class CacheInvokeDirectResult implements Message { public void finishUnmarshal(GridCacheContext ctx, ClassLoader ldr) throws IgniteCheckedException { key.finishUnmarshal(ctx.cacheObjectContext(), ldr); - if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (errBytes != null) { + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } if (res != null) res.finishUnmarshal(ctx.cacheObjectContext(), ldr); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 f99d2cd..a0f4b06 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 @@ -37,6 +37,7 @@ 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.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.Message; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -457,8 +458,10 @@ 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], U.resolveClassLoader(ldr, ctx.gridConfig())); + for (int i = 0; i < byteCol.length; i++) { + args[i] = byteCol[i] == null ? null : MarshallerUtils.unmarshal(marsh, byteCol[i], + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } return args; } @@ -608,8 +611,10 @@ public abstract class GridCacheMessage implements Message { Marshaller marsh = ctx.marshaller(); - for (byte[] bytes : byteCol) - col.add(bytes == null ? null : marsh.<T>unmarshal(bytes, U.resolveClassLoader(ldr, ctx.gridConfig()))); + for (byte[] bytes : byteCol) { + col.add(bytes == null ? null : MarshallerUtils.<T>unmarshal(marsh, bytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName())); + } return col; } http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 6761fac..e6ba3ef 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 @@ -118,6 +118,7 @@ import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.lifecycle.LifecycleAware; import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.spi.IgniteNodeValidationResult; import org.jetbrains.annotations.Nullable; @@ -3397,8 +3398,8 @@ public class GridCacheProcessor extends GridProcessorAdapter { if (ldr == null) ldr = val.getCacheStoreFactory().getClass().getClassLoader(); - marshaller.unmarshal(marshaller.marshal(val.getCacheStoreFactory()), - U.resolveClassLoader(ldr, ctx.config())); + MarshallerUtils.clone(marshaller, val.getCacheStoreFactory(), + U.resolveClassLoader(ldr, ctx.config()), ctx.gridName()); } 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())); + return MarshallerUtils.clone(marshaller, val, U.resolveClassLoader(ctx.config()), ctx.gridName()); } catch (IgniteCheckedException e) { throw new IgniteCheckedException("Failed to validate cache configuration " + http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java index ba563e6..fc51e84 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java @@ -92,6 +92,7 @@ import org.apache.ignite.lang.IgniteInClosure; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lang.IgniteReducer; import org.apache.ignite.lifecycle.LifecycleAware; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.CachePluginConfiguration; import org.apache.ignite.transactions.Transaction; import org.apache.ignite.transactions.TransactionConcurrency; @@ -991,7 +992,7 @@ public class GridCacheUtils { } } - return ctx.marshaller().marshal(obj); + return MarshallerUtils.marshal(ctx.marshaller(), obj, ctx.gridName()); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 f56ba8f..31cc588 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 @@ -34,6 +34,7 @@ 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.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -202,7 +203,7 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { prepareMarshalCacheObjects(vals, ctx.cacheContext(cacheId)); if (err != null) - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); } /** {@inheritDoc} */ @@ -211,8 +212,10 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { finishUnmarshalCacheObjects(vals, ctx.cacheContext(cacheId), ldr); - if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (errBytes != null) { + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 871a599..ae394d7 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 @@ -43,6 +43,7 @@ import org.apache.ignite.internal.util.typedef.C1; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteProductVersion; +import org.apache.ignite.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -332,7 +333,7 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage // Marshal txNodes only if there is a node in topology with an older version. if (ctx.exchange().minimumNodeVersion(topologyVersion()).compareTo(TX_NODES_DIRECT_MARSHALLABLE_SINCE) < 0) { if (txNodes != null && txNodesBytes == null) - txNodesBytes = ctx.marshaller().marshal(txNodes); + txNodesBytes = MarshallerUtils.marshal(ctx.marshaller(), txNodes, ctx.gridName()); } else { if (txNodesMsg == null) @@ -372,7 +373,8 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage txNodes = F.viewReadOnly(txNodesMsg, MSG_TO_COL); if (txNodesBytes != null && txNodes == null) - txNodes = ctx.marshaller().unmarshal(txNodesBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + txNodes = MarshallerUtils.unmarshal(ctx.marshaller(), txNodesBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 7011e80..7c47b2b 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 @@ -26,6 +26,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.marshaller.MarshallerUtils; 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; @@ -100,15 +101,17 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage super.prepareMarshal(ctx); if (err != null) - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); } /** {@inheritDoc} */ @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { super.finishUnmarshal(ctx, ldr); - if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (errBytes != null) { + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 c1be30b..f3ac402 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.marshaller.MarshallerUtils; 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; @@ -106,7 +107,7 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { super.prepareMarshal(ctx); if (affAssignment != null) - affAssignmentBytes = ctx.marshaller().marshal(affAssignment); + affAssignmentBytes = MarshallerUtils.marshal(ctx.marshaller(), affAssignment, ctx.gridName()); } /** {@inheritDoc} */ @@ -115,7 +116,8 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { super.finishUnmarshal(ctx, ldr); if (affAssignmentBytes != null) { - affAssignment = ctx.marshaller().unmarshal(affAssignmentBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + affAssignment = MarshallerUtils.unmarshal(ctx.marshaller(), affAssignmentBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); // 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/97ce8fbb/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 65c9024..7beb1d3 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 @@ -28,6 +28,7 @@ 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.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -111,7 +112,7 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse { super.prepareMarshal(ctx); if (checkCommittedErr != null) - checkCommittedErrBytes = ctx.marshaller().marshal(checkCommittedErr); + checkCommittedErrBytes = MarshallerUtils.marshal(ctx.marshaller(), checkCommittedErr, ctx.gridName()); } /** {@inheritDoc} */ @@ -119,8 +120,10 @@ public class GridDhtTxFinishResponse extends GridDistributedTxFinishResponse { throws IgniteCheckedException { super.finishUnmarshal(ctx, ldr); - if (checkCommittedErrBytes != null) - checkCommittedErr = ctx.marshaller().unmarshal(checkCommittedErrBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (checkCommittedErrBytes != null) { + checkCommittedErr = MarshallerUtils.unmarshal(ctx.marshaller(), checkCommittedErrBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 742b39c..688c439 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 @@ -34,6 +34,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.marshaller.MarshallerUtils; 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; @@ -167,7 +168,7 @@ public class GridDhtAtomicUpdateResponse extends GridCacheMessage implements Gri prepareMarshalCacheObjects(nearEvicted, cctx); - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); } /** {@inheritDoc} */ @@ -180,7 +181,8 @@ public class GridDhtAtomicUpdateResponse extends GridCacheMessage implements Gri finishUnmarshalCacheObjects(nearEvicted, cctx, ldr); - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 1d03dd2..8edf383 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 @@ -1,3 +1,5 @@ +// if (expiryPlcBytes != null && expiryPlc == null) +// expiryPlc = MarshallerUtils.unmarshal(ctx.marshaller(), expiryPlcBytes, ldr, ctx.kernalContext()); /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -45,6 +47,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.marshaller.MarshallerUtils; 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; @@ -633,8 +636,10 @@ public class GridNearAtomicUpdateRequest extends GridCacheMessage implements Gri invokeArgs = unmarshalInvokeArguments(invokeArgsBytes, ctx, ldr); - if (expiryPlcBytes != null) - expiryPlc = ctx.marshaller().unmarshal(expiryPlcBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (expiryPlcBytes != null) { + expiryPlc = MarshallerUtils.unmarshal(ctx.marshaller(), expiryPlcBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 dd52aae..ed923b8 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 @@ -39,6 +39,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.marshaller.MarshallerUtils; 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; @@ -397,7 +398,7 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr super.prepareMarshal(ctx); if (err != null) - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); GridCacheContext cctx = ctx.cacheContext(cacheId); @@ -415,8 +416,10 @@ public class GridNearAtomicUpdateResponse extends GridCacheMessage implements Gr @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { super.finishUnmarshal(ctx, ldr); - if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (errBytes != null) { + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } GridCacheContext cctx = ctx.cacheContext(cacheId); http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 12bf160..4b49730 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 @@ -36,6 +36,7 @@ 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.marshaller.MarshallerUtils; import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemType; import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; @@ -171,7 +172,7 @@ public class GridDhtForceKeysResponse extends GridCacheMessage implements GridCa info.marshal(cctx); } - errBytes = ctx.marshaller().marshal(err); + errBytes = MarshallerUtils.marshal(ctx.marshaller(), err, ctx.gridName()); } /** {@inheritDoc} */ @@ -188,8 +189,10 @@ public class GridDhtForceKeysResponse extends GridCacheMessage implements GridCa info.unmarshal(cctx, ldr); } - if (errBytes != null) - err = ctx.marshaller().unmarshal(errBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (errBytes != null) { + err = MarshallerUtils.unmarshal(ctx.marshaller(), errBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/97ce8fbb/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 4426c44..cbc01be 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.marshaller.MarshallerUtils; 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; @@ -183,15 +184,17 @@ public class GridDhtPartitionDemandMessage extends GridCacheMessage { super.prepareMarshal(ctx); if (topic != null) - topicBytes = ctx.marshaller().marshal(topic); + topicBytes = MarshallerUtils.marshal(ctx.marshaller(), topic, ctx.gridName()); } /** {@inheritDoc} */ @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { super.finishUnmarshal(ctx, ldr); - if (topicBytes != null) - topic = ctx.marshaller().unmarshal(topicBytes, U.resolveClassLoader(ldr, ctx.gridConfig())); + if (topicBytes != null) { + topic = MarshallerUtils.unmarshal(ctx.marshaller(), topicBytes, + U.resolveClassLoader(ldr, ctx.gridConfig()), ctx.gridName()); + } } /** {@inheritDoc} */