Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 565B118B17 for ; Tue, 27 Oct 2015 10:55:08 +0000 (UTC) Received: (qmail 61187 invoked by uid 500); 27 Oct 2015 10:55:05 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 61121 invoked by uid 500); 27 Oct 2015 10:55:05 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 61026 invoked by uid 99); 27 Oct 2015 10:55:05 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Oct 2015 10:55:05 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 024EAE091D; Tue, 27 Oct 2015 10:55:04 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.apache.org Date: Tue, 27 Oct 2015 10:55:07 -0000 Message-Id: In-Reply-To: <3b9ae17f22394e5a8e7c7e7210c03ba1@git.apache.org> References: <3b9ae17f22394e5a8e7c7e7210c03ba1@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [4/6] ignite git commit: ignite-1272: support of custom class loaders and conditional deployment info for portable marshaller and portable caches ignite-1272: support of custom class loaders and conditional deployment info for portable marshaller and portable caches Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/df931bd0 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/df931bd0 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/df931bd0 Branch: refs/heads/ignite-1607 Commit: df931bd09d0a18af839c8d122853111488c1a294 Parents: 18fb46e Author: Denis Magda Authored: Tue Oct 27 12:32:02 2015 +0300 Committer: Denis Magda Committed: Tue Oct 27 12:32:08 2015 +0300 ---------------------------------------------------------------------- .../internal/GridEventConsumeHandler.java | 19 +- .../deployment/GridDeploymentLocalStore.java | 8 +- .../GridDeploymentPerLoaderStore.java | 8 +- .../GridDeploymentPerVersionStore.java | 8 +- .../internal/portable/PortableContext.java | 91 +++++--- .../portable/api/PortableMarshaller.java | 5 + .../processors/cache/CacheObjectContext.java | 17 +- .../processors/cache/GridCacheContext.java | 10 +- .../cache/GridCacheEvictionManager.java | 5 +- .../cache/GridCacheEvictionRequest.java | 18 +- .../cache/GridCacheEvictionResponse.java | 7 +- .../processors/cache/GridCacheIoManager.java | 34 +-- .../processors/cache/GridCacheMessage.java | 72 +++++-- .../cache/GridCacheSharedContext.java | 3 + .../processors/cache/GridCacheUtils.java | 20 +- .../distributed/GridCacheTtlUpdateRequest.java | 7 +- .../distributed/GridCacheTxRecoveryFuture.java | 9 +- .../distributed/GridCacheTxRecoveryRequest.java | 8 +- .../GridCacheTxRecoveryResponse.java | 10 +- .../distributed/GridDistributedBaseMessage.java | 16 +- .../distributed/GridDistributedLockRequest.java | 8 +- .../GridDistributedLockResponse.java | 20 +- .../GridDistributedTxFinishRequest.java | 6 +- .../GridDistributedTxFinishResponse.java | 7 +- .../GridDistributedTxPrepareRequest.java | 13 +- .../GridDistributedTxPrepareResponse.java | 12 +- .../GridDistributedTxRemoteAdapter.java | 5 + .../GridDistributedUnlockRequest.java | 7 +- .../dht/GridDhtAffinityAssignmentRequest.java | 7 +- .../dht/GridDhtAffinityAssignmentResponse.java | 7 +- .../distributed/dht/GridDhtCacheAdapter.java | 3 +- .../distributed/dht/GridDhtLockFuture.java | 5 +- .../distributed/dht/GridDhtLockRequest.java | 7 +- .../distributed/dht/GridDhtLockResponse.java | 14 +- .../dht/GridDhtTransactionalCacheAdapter.java | 22 +- .../distributed/dht/GridDhtTxFinishFuture.java | 9 +- .../distributed/dht/GridDhtTxFinishRequest.java | 7 +- .../dht/GridDhtTxFinishResponse.java | 2 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 9 +- .../dht/GridDhtTxPrepareRequest.java | 28 ++- .../dht/GridDhtTxPrepareResponse.java | 13 +- .../distributed/dht/GridDhtUnlockRequest.java | 7 +- .../dht/GridPartitionedGetFuture.java | 3 +- .../dht/atomic/GridDhtAtomicCache.java | 12 +- .../GridDhtAtomicDeferredUpdateResponse.java | 12 +- .../dht/atomic/GridDhtAtomicUpdateFuture.java | 6 +- .../dht/atomic/GridDhtAtomicUpdateRequest.java | 25 ++- .../dht/atomic/GridDhtAtomicUpdateResponse.java | 11 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 12 +- .../dht/atomic/GridNearAtomicUpdateRequest.java | 33 ++- .../atomic/GridNearAtomicUpdateResponse.java | 11 +- .../dht/colocated/GridDhtColocatedCache.java | 8 +- .../colocated/GridDhtColocatedLockFuture.java | 3 +- .../dht/preloader/GridDhtForceKeysFuture.java | 5 +- .../dht/preloader/GridDhtForceKeysRequest.java | 35 ++- .../dht/preloader/GridDhtForceKeysResponse.java | 11 +- .../GridDhtPartitionDemandMessage.java | 5 + .../GridDhtPartitionSupplyMessage.java | 9 +- .../preloader/GridDhtPartitionSupplyPool.java | 10 +- .../GridDhtPartitionsAbstractMessage.java | 7 +- .../dht/preloader/GridDhtPreloader.java | 3 +- .../distributed/near/GridNearGetFuture.java | 5 +- .../distributed/near/GridNearGetRequest.java | 12 +- .../distributed/near/GridNearGetResponse.java | 12 +- .../distributed/near/GridNearLockFuture.java | 3 +- .../distributed/near/GridNearLockRequest.java | 8 +- .../distributed/near/GridNearLockResponse.java | 8 +- .../near/GridNearOptimisticTxPrepareFuture.java | 3 +- .../GridNearPessimisticTxPrepareFuture.java | 3 +- .../near/GridNearTransactionalCache.java | 8 +- .../near/GridNearTxFinishFuture.java | 8 +- .../near/GridNearTxFinishRequest.java | 7 +- .../near/GridNearTxFinishResponse.java | 2 +- .../near/GridNearTxPrepareRequest.java | 8 +- .../near/GridNearTxPrepareResponse.java | 8 +- .../distributed/near/GridNearUnlockRequest.java | 7 +- .../portable/CacheObjectPortableContext.java | 6 +- .../CacheObjectPortableProcessorImpl.java | 5 +- .../query/GridCacheDistributedQueryFuture.java | 5 +- .../query/GridCacheDistributedQueryManager.java | 25 ++- .../cache/query/GridCacheQueryRequest.java | 46 ++-- .../cache/query/GridCacheQueryResponse.java | 29 ++- .../continuous/CacheContinuousQueryHandler.java | 8 +- .../cache/transactions/IgniteInternalTx.java | 8 +- .../cache/transactions/IgniteTxAdapter.java | 5 + .../cache/transactions/IgniteTxEntry.java | 8 +- .../cache/transactions/IgniteTxHandler.java | 16 +- .../transactions/IgniteTxLocalAdapter.java | 11 + .../IgniteCacheObjectProcessorImpl.java | 7 +- .../ignite/marshaller/AbstractMarshaller.java | 12 +- .../ignite/marshaller/jdk/JdkMarshaller.java | 7 +- .../optimized/OptimizedMarshaller.java | 4 +- ...eAtomicEntryProcessorDeploymentSelfTest.java | 211 +++++++++++++++++++ .../GridCacheConditionalDeploymentSelfTest.java | 190 +++++++++++++++++ .../GridCacheDeploymentOffHeapSelfTest.java | 17 +- .../cache/GridCacheDeploymentSelfTest.java | 26 +-- ...ctionalEntryProcessorDeploymentSelfTest.java | 31 +++ .../communication/GridCacheMessageSelfTest.java | 17 +- .../ignite/testsuites/IgniteBasicTestSuite.java | 4 +- .../ignite/testsuites/IgniteCacheTestSuite.java | 18 +- .../testsuites/IgniteCacheTestSuite3.java | 8 +- .../testsuites/IgniteP2PSelfTestSuite.java | 16 +- .../p2p/CacheDeploymentEntryProcessor.java | 35 +++ .../CacheDeploymentPortableEntryProcessor.java | 35 +++ 104 files changed, 1332 insertions(+), 394 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 599d301..b4ce4ab 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 @@ -35,6 +35,7 @@ import org.apache.ignite.internal.managers.deployment.GridDeploymentInfo; import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean; import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener; import org.apache.ignite.internal.processors.cache.GridCacheAdapter; +import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheDeployable; import org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager; import org.apache.ignite.internal.processors.continuous.GridContinuousHandler; @@ -197,16 +198,18 @@ class GridEventConsumeHandler implements GridContinuousHandler { if (node == null) continue; - if (ctx.config().isPeerClassLoadingEnabled() - && ctx.discovery().cacheNode(node, cacheName)) { - wrapper.p2pMarshal(ctx.config().getMarshaller()); + if (ctx.config().isPeerClassLoadingEnabled()) { + GridCacheContext cctx = + ctx.cache().internalCache(cacheName).context(); - wrapper.cacheName = cacheName; + if (cctx.deploymentEnabled() && + ctx.discovery().cacheNode(node, cacheName)) { + wrapper.p2pMarshal(ctx.config().getMarshaller()); - GridCacheDeploymentManager depMgr = ctx.cache() - .internalCache(cacheName).context().deploy(); + wrapper.cacheName = cacheName; - depMgr.prepare(wrapper); + cctx.deploy().prepare(wrapper); + } } } @@ -519,4 +522,4 @@ class GridEventConsumeHandler implements GridContinuousHandler { evt = (Event)in.readObject(); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 420eea8..d095efb 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 @@ -39,7 +39,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.optimized.OptimizedMarshaller; +import org.apache.ignite.marshaller.AbstractMarshaller; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.deployment.DeploymentListener; import org.apache.ignite.spi.deployment.DeploymentResource; @@ -541,8 +541,8 @@ class GridDeploymentLocalStore extends GridDeploymentStoreAdapter { ctx.resource().onUndeployed(dep); // Clear optimized marshaller's cache. - if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) - ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); + if (ctx.config().getMarshaller() instanceof AbstractMarshaller) + ((AbstractMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); @@ -572,4 +572,4 @@ class GridDeploymentLocalStore extends GridDeploymentStoreAdapter { undeploy(ldr); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java index 6ca74eb..4ba308c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java @@ -39,7 +39,7 @@ import org.apache.ignite.internal.util.GridClassLoaderCache; 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.optimized.OptimizedMarshaller; +import org.apache.ignite.marshaller.AbstractMarshaller; import org.apache.ignite.spi.deployment.DeploymentSpi; import static org.apache.ignite.events.EventType.EVT_CLASS_DEPLOYED; @@ -511,8 +511,8 @@ public class GridDeploymentPerLoaderStore extends GridDeploymentStoreAdapter { ctx.cache().onUndeployed(ldr); // Clear optimized marshaller's cache. - if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) - ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); + if (ctx.config().getMarshaller() instanceof AbstractMarshaller) + ((AbstractMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); @@ -527,4 +527,4 @@ public class GridDeploymentPerLoaderStore extends GridDeploymentStoreAdapter { return S.toString(IsolatedDeployment.class, this, super.toString()); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java index 6f9e968..fabbcb2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java @@ -46,7 +46,7 @@ import org.apache.ignite.internal.util.typedef.internal.LT; 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.optimized.OptimizedMarshaller; +import org.apache.ignite.marshaller.AbstractMarshaller; import org.apache.ignite.spi.deployment.DeploymentSpi; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -1281,8 +1281,8 @@ public class GridDeploymentPerVersionStore extends GridDeploymentStoreAdapter { ctx.cache().onUndeployed(ldr); // Clear optimized marshaller's cache. - if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) - ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); + if (ctx.config().getMarshaller() instanceof AbstractMarshaller) + ((AbstractMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); @@ -1297,4 +1297,4 @@ public class GridDeploymentPerVersionStore extends GridDeploymentStoreAdapter { return S.toString(SharedDeployment.class, this, "super", super.toString()); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java index e9cccf0..acd6a56 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java @@ -52,24 +52,25 @@ import java.util.jar.JarFile; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.IgnitionEx; +import org.apache.ignite.internal.portable.api.PortableException; +import org.apache.ignite.internal.portable.api.PortableIdMapper; +import org.apache.ignite.internal.portable.api.PortableInvalidClassException; +import org.apache.ignite.internal.portable.api.PortableMarshaller; +import org.apache.ignite.internal.portable.api.PortableMetadata; +import org.apache.ignite.internal.portable.api.PortableSerializer; +import org.apache.ignite.internal.portable.api.PortableTypeConfiguration; import org.apache.ignite.internal.processors.cache.portable.CacheObjectPortableProcessorImpl; +import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetConfiguration; +import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetPortableConfiguration; +import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetPortableTypeConfiguration; import org.apache.ignite.internal.util.GridConcurrentHashSet; +import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.lang.GridMapEntry; import org.apache.ignite.internal.util.typedef.T2; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.marshaller.MarshallerContext; import org.apache.ignite.marshaller.optimized.OptimizedMarshaller; -import org.apache.ignite.internal.portable.api.PortableMarshaller; -import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetConfiguration; -import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetPortableConfiguration; -import org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetPortableTypeConfiguration; -import org.apache.ignite.internal.portable.api.PortableException; -import org.apache.ignite.internal.portable.api.PortableIdMapper; -import org.apache.ignite.internal.portable.api.PortableInvalidClassException; -import org.apache.ignite.internal.portable.api.PortableMetadata; -import org.apache.ignite.internal.portable.api.PortableSerializer; -import org.apache.ignite.internal.portable.api.PortableTypeConfiguration; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -81,6 +82,9 @@ public class PortableContext implements Externalizable { private static final long serialVersionUID = 0L; /** */ + private static final ClassLoader dfltLdr = U.gridClassLoader(); + + /** */ static final PortableIdMapper DFLT_ID_MAPPER = new IdMapperWrapper(null); /** */ @@ -108,8 +112,8 @@ public class PortableContext implements Externalizable { /** */ private final ConcurrentMap, PortableClassDescriptor> descByCls = new ConcurrentHashMap8<>(); - /** */ - private final ConcurrentMap userTypes = new ConcurrentHashMap8<>(0); + /** Holds classes loaded by default class loader only. */ + private final ConcurrentMap userTypes = new ConcurrentHashMap8<>(); /** */ private final Map predefinedTypes = new HashMap<>(); @@ -124,7 +128,7 @@ public class PortableContext implements Externalizable { private final Map, Byte> mapTypes = new HashMap<>(); /** */ - private final Map mappers = new ConcurrentHashMap8<>(0); + private final ConcurrentMap mappers = new ConcurrentHashMap8<>(0); /** */ private final Map typeMappers = new ConcurrentHashMap8<>(0); @@ -454,16 +458,18 @@ public class PortableContext implements Externalizable { public PortableClassDescriptor descriptorForTypeId(boolean userType, int typeId, ClassLoader ldr) { assert typeId != GridPortableMarshaller.UNREGISTERED_TYPE_ID; - //TODO: IGNITE-1358 (uncomment when fixed) - //PortableClassDescriptor desc = userType ? userTypes.get(typeId) : predefinedTypes.get(typeId); - - // As a workaround for IGNITE-1358 we always check the predefined map before. + //TODO: As a workaround for IGNITE-1358 we always check the predefined map before without checking 'userType' PortableClassDescriptor desc = predefinedTypes.get(typeId); if (desc != null) return desc; - if (userType) { + if (ldr == null) + ldr = dfltLdr; + + // If the type hasn't been loaded by default class loader then we mustn't return the descriptor from here + // giving a chance to a custom class loader to reload type's class. + if (userType && ldr.equals(dfltLdr)) { desc = userTypes.get(typeId); if (desc != null) @@ -478,9 +484,17 @@ public class PortableContext implements Externalizable { desc = descByCls.get(cls); } catch (ClassNotFoundException e) { + // Class might have been loaded by default class loader. + if (userType && !ldr.equals(dfltLdr) && (desc = descriptorForTypeId(true, typeId, dfltLdr)) != null) + return desc; + throw new PortableInvalidClassException(e); } catch (IgniteCheckedException e) { + // Class might have been loaded by default class loader. + if (userType && !ldr.equals(dfltLdr) && (desc = descriptorForTypeId(true, typeId, dfltLdr)) != null) + return desc; + throw new PortableException("Failed resolve class for ID: " + typeId, e); } @@ -541,7 +555,7 @@ public class PortableContext implements Externalizable { String typeName = typeName(cls.getName()); - PortableIdMapper idMapper = idMapper(typeName); + PortableIdMapper idMapper = userTypeIdMapper(typeName); int typeId = idMapper.typeId(typeName); @@ -566,10 +580,15 @@ public class PortableContext implements Externalizable { false /* predefined */ ); - // perform put() instead of putIfAbsent() because "registered" flag may have been changed. - userTypes.put(typeId, desc); + // perform put() instead of putIfAbsent() because "registered" flag might have been changed or class loader + // might have reloaded described class. + if (IgniteUtils.detectClassLoader(cls).equals(dfltLdr)) + userTypes.put(typeId, desc); + descByCls.put(cls, desc); + mappers.putIfAbsent(typeId, idMapper); + // TODO uncomment for https://issues.apache.org/jira/browse/IGNITE-1377 // if (registerMetadata && isMetaDataEnabled(typeId)) // metaHnd.addMeta(typeId, new PortableMetaDataImpl(typeName, desc.fieldsMeta(), null)); @@ -619,7 +638,7 @@ public class PortableContext implements Externalizable { if (marshCtx.isSystemType(typeName)) return typeName.hashCode(); - return idMapper(shortTypeName).typeId(shortTypeName); + return userTypeIdMapper(shortTypeName).typeId(shortTypeName); } /** @@ -628,20 +647,20 @@ public class PortableContext implements Externalizable { * @return Field ID. */ public int fieldId(int typeId, String fieldName) { - return idMapper(typeId).fieldId(typeId, fieldName); + return userTypeIdMapper(typeId).fieldId(typeId, fieldName); } /** * @param typeId Type ID. * @return Instance of ID mapper. */ - public PortableIdMapper idMapper(int typeId) { + public PortableIdMapper userTypeIdMapper(int typeId) { PortableIdMapper idMapper = mappers.get(typeId); if (idMapper != null) return idMapper; - if (userTypes.containsKey(typeId) || predefinedTypes.containsKey(typeId)) + if (predefinedTypes.containsKey(typeId)) return DFLT_ID_MAPPER; return BASIC_CLS_ID_MAPPER; @@ -651,7 +670,7 @@ public class PortableContext implements Externalizable { * @param typeName Type name. * @return Instance of ID mapper. */ - private PortableIdMapper idMapper(String typeName) { + private PortableIdMapper userTypeIdMapper(String typeName) { PortableIdMapper idMapper = typeMappers.get(typeName); return idMapper != null ? idMapper : DFLT_ID_MAPPER; @@ -784,7 +803,9 @@ public class PortableContext implements Externalizable { fieldsMeta = desc.fieldsMeta(); - userTypes.put(id, desc); + if (IgniteUtils.detectClassLoader(cls).equals(dfltLdr)) + userTypes.put(id, desc); + descByCls.put(cls, desc); } @@ -934,6 +955,22 @@ public class PortableContext implements Externalizable { } /** + * Undeployment callback invoked when class loader is being undeployed. + * + * Some marshallers may want to clean their internal state that uses the undeployed class loader somehow. + * + * @param ldr Class loader being undeployed. + */ + public void onUndeploy(ClassLoader ldr) { + for (Class cls : descByCls.keySet()) { + if (ldr.equals(cls.getClassLoader())) + descByCls.remove(cls); + } + + U.clearClassCache(ldr); + } + + /** */ private static class IdMapperWrapper implements PortableIdMapper { /** */ http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/portable/api/PortableMarshaller.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/api/PortableMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/api/PortableMarshaller.java index 3dfbdf0..24a39a7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/api/PortableMarshaller.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/api/PortableMarshaller.java @@ -349,4 +349,9 @@ public class PortableMarshaller extends AbstractMarshaller { throw new PortableException("Failed to unmarshal the object from InputStream", e); } } + + /** {@inheritDoc} */ + @Override public void onUndeploy(ClassLoader ldr) { + impl.context().onUndeploy(ldr); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java index 7d7cbec..44b91a5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectContext.java @@ -44,21 +44,27 @@ public class CacheObjectContext { /** */ private boolean p2pEnabled; + /** */ + private boolean addDepInfo; + /** * @param kernalCtx Kernal context. * @param dfltAffMapper Default affinity mapper. * @param cpyOnGet Copy on get flag. * @param storeVal {@code True} if should store unmarshalled value in cache. + * @param addDepInfo {@code true} if deployment info should be associated with the objects of this cache. */ public CacheObjectContext(GridKernalContext kernalCtx, AffinityKeyMapper dfltAffMapper, boolean cpyOnGet, - boolean storeVal) { + boolean storeVal, + boolean addDepInfo) { this.kernalCtx = kernalCtx; this.p2pEnabled = kernalCtx.config().isPeerClassLoadingEnabled(); this.dfltAffMapper = dfltAffMapper; this.cpyOnGet = cpyOnGet; this.storeVal = storeVal; + this.addDepInfo = addDepInfo; proc = kernalCtx.cacheObjects(); } @@ -71,6 +77,13 @@ public class CacheObjectContext { } /** + * @return {@code True} if deployment info should be associated with the objects of this cache. + */ + public boolean addDeploymentInfo() { + return addDepInfo; + } + + /** * @return Copy on get flag. */ public boolean copyOnGet() { @@ -126,4 +139,4 @@ public class CacheObjectContext { public Collection unwrapPortablesIfNeeded(Collection col, boolean keepPortable) { return col; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 3a1cee6..1f4852c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -236,6 +236,9 @@ public class GridCacheContext implements Externalizable { /** Updates allowed flag. */ private boolean updatesAllowed; + /** Deployment enabled flag for this specific cache */ + private boolean depEnabled; + /** * Empty constructor required for {@link Externalizable}. */ @@ -312,6 +315,7 @@ public class GridCacheContext implements Externalizable { this.cacheType = cacheType; this.affNode = affNode; this.updatesAllowed = updatesAllowed; + this.depEnabled = ctx.deploy().enabled() && !cacheObjects().isPortableEnabled(cacheCfg); /* * Managers in starting order! @@ -965,7 +969,7 @@ public class GridCacheContext implements Externalizable { * @return Cache transaction manager. */ public IgniteTxManager tm() { - return sharedCtx.tm(); + return sharedCtx.tm(); } /** @@ -1408,10 +1412,10 @@ public class GridCacheContext implements Externalizable { } /** - * @return {@code True} if deployment enabled. + * @return {@code True} if deployment is enabled. */ public boolean deploymentEnabled() { - return ctx.deploy().enabled(); + return depEnabled; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java index 1c34c76..9a89fee 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java @@ -1742,7 +1742,8 @@ public class GridCacheEvictionManager extends GridCacheManagerAdapter { // There are remote participants. for (ClusterNode node : nodes) { GridCacheEvictionRequest req = F.addIfAbsent(reqMap, node.id(), - new GridCacheEvictionRequest(cctx.cacheId(), id, evictInfos.size(), topVer)); + new GridCacheEvictionRequest(cctx.cacheId(), id, evictInfos.size(), topVer, + cctx.deploymentEnabled())); assert req != null; @@ -2106,4 +2107,4 @@ public class GridCacheEvictionManager extends GridCacheManagerAdapter { return S.toString(EvictionFuture.class, this); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionRequest.java index fa0359c..09652a9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionRequest.java @@ -62,14 +62,17 @@ public class GridCacheEvictionRequest extends GridCacheMessage implements GridCa * @param futId Future id. * @param size Size. * @param topVer Topology version. + * @param addDepInfo Deployment info flag. */ - GridCacheEvictionRequest(int cacheId, long futId, int size, @NotNull AffinityTopologyVersion topVer) { + GridCacheEvictionRequest(int cacheId, long futId, int size, @NotNull AffinityTopologyVersion topVer, + boolean addDepInfo) { assert futId > 0; assert size > 0; assert topVer.topologyVersion() > 0; this.cacheId = cacheId; this.futId = futId; + this.addDepInfo = addDepInfo; entries = new ArrayList<>(size); @@ -82,15 +85,13 @@ public class GridCacheEvictionRequest extends GridCacheMessage implements GridCa super.prepareMarshal(ctx); if (entries != null) { - boolean depEnabled = ctx.deploymentEnabled(); - GridCacheContext cctx = ctx.cacheContext(cacheId); for (CacheEvictionEntry e : entries) { e.prepareMarshal(cctx); - if (depEnabled) - prepareObject(e.key().value(cctx.cacheObjectContext(), false), ctx); + if (addDepInfo) + prepareObject(e.key().value(cctx.cacheObjectContext(), false), cctx); } } } @@ -107,6 +108,11 @@ public class GridCacheEvictionRequest extends GridCacheMessage implements GridCa } } + /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return addDepInfo; + } + /** * @return Future id. */ @@ -239,4 +245,4 @@ public class GridCacheEvictionRequest extends GridCacheMessage implements GridCa @Override public String toString() { return S.toString(GridCacheEvictionRequest.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionResponse.java index aa3911b..ebaee6a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionResponse.java @@ -88,6 +88,11 @@ public class GridCacheEvictionResponse extends GridCacheMessage { finishUnmarshalCacheObjects(rejectedKeys, ctx.cacheContext(cacheId), ldr); } + /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return false; + } + /** * @return Future ID. */ @@ -217,4 +222,4 @@ public class GridCacheEvictionResponse extends GridCacheMessage { @Override public String toString() { return S.toString(GridCacheEvictionResponse.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java index 476a96c..ec34f41 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java @@ -284,6 +284,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { /** * Sends response on failed message. + * * @param nodeId node id. * @param res response. * @param cctx shared context. @@ -302,6 +303,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { /** * Processes failed messages. + * * @param nodeId niode id. * @param msg message. * @throws IgniteCheckedException If failed. @@ -332,7 +334,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { req.version(), req.futureId(), req.miniId(), - 0); + 0, + ctx.deploymentEnabled()); sendResponseOnFailedMessage(nodeId, res, cctx, ctx.ioPolicy()); } @@ -345,7 +348,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { GridDhtTxPrepareResponse res = new GridDhtTxPrepareResponse( req.version(), req.futureId(), - req.miniId()); + req.miniId(), + req.deployInfo() != null); res.error(req.classError()); @@ -359,7 +363,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { GridDhtAtomicUpdateResponse res = new GridDhtAtomicUpdateResponse( ctx.cacheId(), - req.futureVersion()); + req.futureVersion(), + ctx.deploymentEnabled()); res.onError(req.classError()); @@ -374,7 +379,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { GridNearAtomicUpdateResponse res = new GridNearAtomicUpdateResponse( ctx.cacheId(), nodeId, - req.futureVersion()); + req.futureVersion(), + ctx.deploymentEnabled()); res.error(req.classError()); @@ -389,7 +395,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { GridDhtForceKeysResponse res = new GridDhtForceKeysResponse( ctx.cacheId(), req.futureId(), - req.miniId() + req.miniId(), + ctx.deploymentEnabled() ); res.error(req.classError()); @@ -414,7 +421,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { ctx.cacheId(), req.futureId(), req.miniId(), - req.version()); + req.version(), + req.deployInfo() != null); res.error(req.classError()); @@ -456,7 +464,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { false, 0, req.classError(), - null); + null, + ctx.deploymentEnabled()); sendResponseOnFailedMessage(nodeId, res, cctx, ctx.ioPolicy()); } @@ -474,7 +483,8 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { req.version(), null, null, - null); + null, + req.deployInfo() != null); res.error(req.classError()); @@ -540,7 +550,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { if (destNodeId == null || !cctx.localNodeId().equals(destNodeId)) { msg.prepareMarshal(cctx); - if (depEnabled && msg instanceof GridCacheDeployable) + if (msg instanceof GridCacheDeployable && msg.addDeploymentInfo()) cctx.deploy().prepare((GridCacheDeployable)msg); } @@ -766,8 +776,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { } /** - * @return ID that auto-grows based on local counter and counters received - * from other nodes. + * @return ID that auto-grows based on local counter and counters received from other nodes. */ public long nextIoId() { return idGen.incrementAndGet(); @@ -784,8 +793,7 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { public void sendNoRetry(ClusterNode node, GridCacheMessage msg, byte plc) - throws IgniteCheckedException - { + throws IgniteCheckedException { assert node != null; assert msg != null; http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 4b700e0..bdd2118 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 @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import javax.cache.processor.EntryProcessor; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.managers.deployment.GridDeployment; @@ -30,6 +31,7 @@ import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry; import org.apache.ignite.internal.util.tostring.GridToStringInclude; +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.S; import org.apache.ignite.internal.util.typedef.internal.U; @@ -67,6 +69,14 @@ public abstract class GridCacheMessage implements Message { /** */ @GridDirectTransient + protected boolean addDepInfo; + + /** Force addition of deployment info regardless of {@code addDepInfo} flag value.*/ + @GridDirectTransient + protected boolean forceAddDepInfo; + + /** */ + @GridDirectTransient private IgniteCheckedException err; /** */ @@ -174,11 +184,20 @@ public abstract class GridCacheMessage implements Message { } /** + * Deployment enabled flag indicates whether deployment info has to be added to this message. + * + * @return {@code true} or if deployment info must be added to the the message, {@code false} otherwise. + */ + public abstract boolean addDeploymentInfo(); + + /** * @param o Object to prepare for marshalling. * @param ctx Context. * @throws IgniteCheckedException If failed. */ - protected final void prepareObject(@Nullable Object o, GridCacheSharedContext ctx) throws IgniteCheckedException { + protected final void prepareObject(@Nullable Object o, GridCacheContext ctx) throws IgniteCheckedException { + assert addDepInfo || forceAddDepInfo; + if (!skipPrepare && o != null) { GridDeploymentInfo d = ctx.deploy().globalDeploymentInfo(); @@ -259,16 +278,16 @@ public abstract class GridCacheMessage implements Message { if (info != null) { info.marshal(ctx); - if (ctx.deploymentEnabled()) { + if (addDepInfo) { if (info.key() != null) - prepareObject(info.key().value(ctx.cacheObjectContext(), false), ctx.shared()); + prepareObject(info.key().value(ctx.cacheObjectContext(), false), ctx); CacheObject val = info.value(); if (val != null) { val.finishUnmarshal(ctx.cacheObjectContext(), ctx.deploy().globalLoader()); - prepareObject(CU.value(val, ctx, false), ctx.shared()); + prepareObject(CU.value(val, ctx, false), ctx); } } } @@ -332,18 +351,31 @@ public abstract class GridCacheMessage implements Message { if (txEntries != null) { boolean transferExpiry = transferExpiryPolicy(); + boolean p2pEnabled = ctx.deploymentEnabled(); for (IgniteTxEntry e : txEntries) { e.marshal(ctx, transferExpiry); - if (ctx.deploymentEnabled()) { - CacheObjectContext cctx =ctx.cacheContext(e.cacheId()).cacheObjectContext(); + GridCacheContext cctx = e.context(); + if (addDepInfo) { if (e.key() != null) - prepareObject(e.key().value(cctx, false), ctx); + prepareObject(e.key().value(cctx.cacheObjectContext(), false), cctx); if (e.value() != null) - prepareObject(e.value().value(cctx, false), ctx); + prepareObject(e.value().value(cctx.cacheObjectContext(), false), cctx); + + if (e.entryProcessors() != null) { + for (T2, Object[]> entProc : e.entryProcessors()) + prepareObject(entProc.get1(), cctx); + } + } + else if (p2pEnabled && e.entryProcessors() != null) { + if (!forceAddDepInfo) + forceAddDepInfo = true; + + for (T2, Object[]> entProc : e.entryProcessors()) + prepareObject(entProc.get1(), cctx); } } } @@ -381,8 +413,8 @@ public abstract class GridCacheMessage implements Message { * @return Marshalled collection. * @throws IgniteCheckedException If failed. */ - @Nullable protected final byte[][] marshalInvokeArguments(@Nullable Object[] args, - GridCacheSharedContext ctx) throws IgniteCheckedException { + @Nullable protected final byte[][] marshalInvokeArguments(@Nullable Object[] args, GridCacheContext ctx) + throws IgniteCheckedException { assert ctx != null; if (args == null || args.length == 0) @@ -393,7 +425,7 @@ public abstract class GridCacheMessage implements Message { for (int i = 0; i < args.length; i++) { Object arg = args[i]; - if (ctx.deploymentEnabled()) + if (addDepInfo) prepareObject(arg, ctx); argsBytes[i] = arg == null ? null : CU.marshal(ctx, arg); @@ -436,7 +468,7 @@ public abstract class GridCacheMessage implements Message { * @throws IgniteCheckedException If failed. */ @Nullable protected List marshalCollection(@Nullable Collection col, - GridCacheSharedContext ctx) throws IgniteCheckedException { + GridCacheContext ctx) throws IgniteCheckedException { assert ctx != null; if (col == null) @@ -445,7 +477,7 @@ public abstract class GridCacheMessage implements Message { List byteCol = new ArrayList<>(col.size()); for (Object o : col) { - if (ctx.deploymentEnabled()) + if (addDepInfo) prepareObject(o, ctx); byteCol.add(o == null ? null : CU.marshal(ctx, o)); @@ -467,16 +499,14 @@ public abstract class GridCacheMessage implements Message { int size = col.size(); - boolean depEnabled = ctx.deploymentEnabled(); - for (int i = 0 ; i < size; i++) { CacheObject obj = col.get(i); if (obj != null) { obj.prepareMarshal(ctx.cacheObjectContext()); - if (depEnabled) - prepareObject(obj.value(ctx.cacheObjectContext(), false), ctx.shared()); + if (addDepInfo) + prepareObject(obj.value(ctx.cacheObjectContext(), false), ctx); } } } @@ -491,14 +521,12 @@ public abstract class GridCacheMessage implements Message { if (col == null) return; - boolean depEnabled = ctx.deploymentEnabled(); - for (CacheObject obj : col) { if (obj != null) { obj.prepareMarshal(ctx.cacheObjectContext()); - if (depEnabled) - prepareObject(obj.value(ctx.cacheObjectContext(), false), ctx.shared()); + if (addDepInfo) + prepareObject(obj.value(ctx.cacheObjectContext(), false), ctx); } } } @@ -649,4 +677,4 @@ public abstract class GridCacheMessage implements Message { @Override public String toString() { return S.toString(GridCacheMessage.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java index c5d4162..b37742c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java @@ -558,6 +558,9 @@ public class GridCacheSharedContext { if (store.isWriteBehind() != activeStore.isWriteBehind()) return "caches with different write-behind setting can't be enlisted in one transaction"; + if (activeCacheCtx.deploymentEnabled() != cacheCtx.deploymentEnabled()) + return "caches with enabled and disabled deployment modes can't be enlisted in one transaction"; + // If local and write-behind validations passed, this must be true. assert store.isWriteToStoreFromDht() == activeStore.isWriteToStoreFromDht(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 7854c93..ee1f4a1 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 @@ -925,11 +925,25 @@ public class GridCacheUtils { * @throws IgniteCheckedException If marshalling failed. */ @SuppressWarnings("unchecked") - public static byte[] marshal(GridCacheSharedContext ctx, Object obj) + public static byte[] marshal(GridCacheContext ctx, Object obj) throws IgniteCheckedException { assert ctx != null; - if (ctx.gridDeploy().enabled()) { + return marshal(ctx.shared(), ctx.deploymentEnabled(), obj); + } + + /** + * @param ctx Cache context. + * @param depEnabled deployment enabled flag. + * @param obj Object to marshal. + * @return Buffer that contains obtained byte array. + * @throws IgniteCheckedException If marshalling failed. + */ + public static byte[] marshal(GridCacheSharedContext ctx, boolean depEnabled, Object obj) + throws IgniteCheckedException { + assert ctx != null; + + if (depEnabled) { if (obj != null) { if (obj instanceof Iterable) ctx.deploy().registerClasses((Iterable)obj); @@ -1797,4 +1811,4 @@ public class GridCacheUtils { } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java index c911b5b..8177c98 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTtlUpdateRequest.java @@ -194,6 +194,11 @@ public class GridCacheTtlUpdateRequest extends GridCacheMessage { } /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return false; + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); @@ -327,4 +332,4 @@ public class GridCacheTtlUpdateRequest extends GridCacheMessage { @Override public String toString() { return S.toString(GridCacheTtlUpdateRequest.class, this, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java index d6f6a18..4d75403 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java @@ -162,7 +162,8 @@ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture= 0; this.cnt = cnt; + this.addDepInfo = addDepInfo; } /** * @param ver Either lock or transaction version. * @param cnt Key count. + * @param addDepInfo Deployment info flag. */ - protected GridDistributedBaseMessage(GridCacheVersion ver, int cnt) { - this(cnt); + protected GridDistributedBaseMessage(GridCacheVersion ver, int cnt, boolean addDepInfo) { + this(cnt, addDepInfo); assert ver != null; @@ -122,6 +125,11 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem candsByIdx = ctx.marshaller().unmarshal(candsByIdxBytes, ldr); } + /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return addDepInfo; + } + /** * @return Version. */ @@ -290,4 +298,4 @@ public abstract class GridDistributedBaseMessage extends GridCacheMessage implem @Override public String toString() { return S.toString(GridDistributedBaseMessage.class, this, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java index 1963894..2899e25 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java @@ -118,6 +118,7 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage { * @param keyCnt Number of keys. * @param txSize Expected transaction size. * @param skipStore Skip store flag. + * @param addDepInfo Deployment info flag. */ public GridDistributedLockRequest( int cacheId, @@ -133,9 +134,10 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage { long timeout, int keyCnt, int txSize, - boolean skipStore + boolean skipStore, + boolean addDepInfo ) { - super(lockVer, keyCnt); + super(lockVer, keyCnt, addDepInfo); assert keyCnt > 0; assert futId != null; @@ -551,4 +553,4 @@ public class GridDistributedLockRequest extends GridDistributedBaseMessage { return S.toString(GridDistributedLockRequest.class, this, "keysCnt", retVals.length, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 8a95b14..cdd58b5 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 @@ -72,12 +72,14 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { * @param lockVer Lock version. * @param futId Future ID. * @param cnt Key count. + * @param addDepInfo Deployment info. */ public GridDistributedLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, - int cnt) { - super(lockVer, cnt); + int cnt, + boolean addDepInfo) { + super(lockVer, cnt, addDepInfo); assert futId != null; @@ -92,12 +94,14 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { * @param lockVer Lock ID. * @param futId Future ID. * @param err Error. + * @param addDepInfo Deployment info. */ public GridDistributedLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, - Throwable err) { - super(lockVer, 0); + Throwable err, + boolean addDepInfo) { + super(lockVer, 0, addDepInfo); assert futId != null; @@ -112,13 +116,15 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { * @param futId Future ID. * @param cnt Count. * @param err Error. + * @param addDepInfo Deployment info. */ public GridDistributedLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, int cnt, - Throwable err) { - super(lockVer, cnt); + Throwable err, + boolean addDepInfo) { + super(lockVer, cnt, addDepInfo); assert futId != null; @@ -325,4 +331,4 @@ public class GridDistributedLockResponse extends GridDistributedBaseMessage { return S.toString(GridDistributedLockResponse.class, this, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java index ddf6799..34b3112 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java @@ -89,6 +89,7 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage { * @param committedVers Committed versions. * @param rolledbackVers Rolled back versions. * @param txSize Expected transaction size. + * @param addDepInfo Deployment info flag. */ public GridDistributedTxFinishRequest( GridCacheVersion xidVer, @@ -104,9 +105,10 @@ public class GridDistributedTxFinishRequest extends GridDistributedBaseMessage { GridCacheVersion baseVer, Collection committedVers, Collection rolledbackVers, - int txSize + int txSize, + boolean addDepInfo ) { - super(xidVer, 0); + super(xidVer, 0, addDepInfo); assert xidVer != null; this.futId = futId; http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java index 2cfafc1..4e17e79 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java @@ -74,6 +74,11 @@ public class GridDistributedTxFinishResponse extends GridCacheMessage { } /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return false; + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); @@ -151,4 +156,4 @@ public class GridDistributedTxFinishResponse extends GridCacheMessage { @Override public String toString() { return GridToStringBuilder.toString(GridDistributedTxFinishResponse.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 5ba7128..533c8ca 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 @@ -131,15 +131,17 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage * @param writes Write entries. * @param txNodes Transaction nodes mapping. * @param onePhaseCommit One phase commit flag. + * @param addDepInfo Deployment info flag. */ public GridDistributedTxPrepareRequest( IgniteInternalTx tx, @Nullable Collection reads, Collection writes, Map> txNodes, - boolean onePhaseCommit + boolean onePhaseCommit, + boolean addDepInfo ) { - super(tx.xidVersion(), 0); + super(tx.xidVersion(), 0, addDepInfo); writeVer = tx.writeVersion(); threadId = tx.threadId(); @@ -337,6 +339,11 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage } /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return addDepInfo || forceAddDepInfo; + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); @@ -605,4 +612,4 @@ public class GridDistributedTxPrepareRequest extends GridDistributedBaseMessage return GridToStringBuilder.toString(GridDistributedTxPrepareRequest.class, this, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 e798458..d2c5aa4 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 @@ -52,17 +52,19 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage /** * @param xid Transaction ID. + * @param addDepInfo Deployment info flag. */ - public GridDistributedTxPrepareResponse(GridCacheVersion xid) { - super(xid, 0); + public GridDistributedTxPrepareResponse(GridCacheVersion xid, boolean addDepInfo) { + super(xid, 0, addDepInfo); } /** * @param xid Lock ID. * @param err Error. + * @param addDepInfo Deployment info flag. */ - public GridDistributedTxPrepareResponse(GridCacheVersion xid, Throwable err) { - super(xid, 0); + public GridDistributedTxPrepareResponse(GridCacheVersion xid, Throwable err, boolean addDepInfo) { + super(xid, 0, addDepInfo); this.err = err; } @@ -168,4 +170,4 @@ public class GridDistributedTxPrepareResponse extends GridDistributedBaseMessage return GridToStringBuilder.toString(GridDistributedTxPrepareResponse.class, this, "err", err == null ? "null" : err.toString(), "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java index f969737..0834e88 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java @@ -192,6 +192,11 @@ public class GridDistributedTxRemoteAdapter extends IgniteTxAdapter return Collections.emptyList(); } + /** {@inheritDoc} */ + @Override public boolean activeCachesDeploymentEnabled() { + return false; + } + /** * @return Checks if transaction has no entries. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java index 70c83f2..213a0ff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java @@ -54,9 +54,10 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage { /** * @param cacheId Cache ID. * @param keyCnt Key count. + * @param addDepInfo Deployment info flag. */ - public GridDistributedUnlockRequest(int cacheId, int keyCnt) { - super(keyCnt); + public GridDistributedUnlockRequest(int cacheId, int keyCnt, boolean addDepInfo) { + super(keyCnt, addDepInfo); this.cacheId = cacheId; } @@ -159,4 +160,4 @@ public class GridDistributedUnlockRequest extends GridDistributedBaseMessage { @Override public String toString() { return S.toString(GridDistributedUnlockRequest.class, this, "super", super.toString()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java index e6a5c9a..0ef7606 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java @@ -52,6 +52,11 @@ public class GridDhtAffinityAssignmentRequest extends GridCacheMessage { } /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return false; + } + + /** {@inheritDoc} */ @Override public boolean partitionExchangeMessage() { return true; } @@ -127,4 +132,4 @@ public class GridDhtAffinityAssignmentRequest extends GridCacheMessage { @Override public String toString() { return S.toString(GridDhtAffinityAssignmentRequest.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/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 2798d7c..42358d9 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 @@ -135,6 +135,11 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { } /** {@inheritDoc} */ + @Override public boolean addDeploymentInfo() { + return false; + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); @@ -202,4 +207,4 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { @Override public String toString() { return S.toString(GridDhtAffinityAssignmentResponse.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java index 333bce2..9d02705 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java @@ -694,7 +694,8 @@ public abstract class GridDhtCacheAdapter extends GridDistributedCacheAdap GridNearGetResponse res = new GridNearGetResponse(ctx.cacheId(), req.futureId(), req.miniId(), - req.version()); + req.version(), + req.deployInfo() != null); GridDhtFuture> fut = (GridDhtFuture>)f; http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java index 2c16534..4f3e97d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java @@ -866,7 +866,8 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture inTx() ? tx.subjectId() : null, inTx() ? tx.taskNameHash() : 0, read ? accessTtl : -1L, - skipStore); + skipStore, + cctx.deploymentEnabled()); try { for (ListIterator it = dhtMapping.listIterator(); it.hasNext();) { @@ -1236,4 +1237,4 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture return S.toString(MiniFuture.class, this, "nodeId", node.id(), "super", super.toString()); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java index 99c1b86..91ab1ca 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java @@ -120,6 +120,7 @@ public class GridDhtLockRequest extends GridDistributedLockRequest { * @param taskNameHash Task name hash code. * @param accessTtl TTL for read operation. * @param skipStore Skip store flag. + * @param addDepInfo Deployment info flag. */ public GridDhtLockRequest( int cacheId, @@ -141,7 +142,8 @@ public class GridDhtLockRequest extends GridDistributedLockRequest { @Nullable UUID subjId, int taskNameHash, long accessTtl, - boolean skipStore + boolean skipStore, + boolean addDepInfo ) { super(cacheId, nodeId, @@ -156,7 +158,8 @@ public class GridDhtLockRequest extends GridDistributedLockRequest { timeout, dhtCnt == 0 ? nearCnt : dhtCnt, txSize, - skipStore); + skipStore, + addDepInfo); this.topVer = topVer; http://git-wip-us.apache.org/repos/asf/ignite/blob/df931bd0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java index f79156b..1e92b54 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java @@ -75,9 +75,11 @@ public class GridDhtLockResponse extends GridDistributedLockResponse { * @param futId Future ID. * @param miniId Mini future ID. * @param cnt Key count. + * @param addDepInfo Deployment info. */ - public GridDhtLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, IgniteUuid miniId, int cnt) { - super(cacheId, lockVer, futId, cnt); + public GridDhtLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, IgniteUuid miniId, int cnt, + boolean addDepInfo) { + super(cacheId, lockVer, futId, cnt, addDepInfo); assert miniId != null; @@ -89,9 +91,11 @@ public class GridDhtLockResponse extends GridDistributedLockResponse { * @param futId Future ID. * @param miniId Mini future ID. * @param err Error. + * @param addDepInfo */ - public GridDhtLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, IgniteUuid miniId, Throwable err) { - super(cacheId, lockVer, futId, err); + public GridDhtLockResponse(int cacheId, GridCacheVersion lockVer, IgniteUuid futId, IgniteUuid miniId, + Throwable err, boolean addDepInfo) { + super(cacheId, lockVer, futId, err, addDepInfo); assert miniId != null; @@ -291,4 +295,4 @@ public class GridDhtLockResponse extends GridDistributedLockResponse { @Override public String toString() { return S.toString(GridDhtLockResponse.class, this, super.toString()); } -} \ No newline at end of file +}