ignite-1.5 - Fixing tests.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/385668b3 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/385668b3 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/385668b3 Branch: refs/heads/ignite-1.5 Commit: 385668b3bd9a77f87c11e39a7d915a54a48e39be Parents: 7680392 Author: Alexey Goncharuk <alexey.goncha...@gmail.com> Authored: Tue Nov 24 19:34:35 2015 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Tue Nov 24 19:34:35 2015 +0300 ---------------------------------------------------------------------- .../ignite/internal/NodeStoppingException.java | 35 ++++++++++++++++++++ .../processors/cache/GridCacheIoManager.java | 4 +++ .../processors/cache/GridCacheMvccManager.java | 3 +- .../distributed/dht/GridDhtLockFuture.java | 19 ++++++----- .../CacheObjectBinaryProcessorImpl.java | 6 ++-- 5 files changed, 54 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/385668b3/modules/core/src/main/java/org/apache/ignite/internal/NodeStoppingException.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/NodeStoppingException.java b/modules/core/src/main/java/org/apache/ignite/internal/NodeStoppingException.java new file mode 100644 index 0000000..164983a --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/NodeStoppingException.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal; + +import org.apache.ignite.IgniteCheckedException; + +/** + * + */ +public class NodeStoppingException extends IgniteCheckedException { + /** */ + private static final long serialVersionUID = 0L; + + /** + * @param msg Exception message. + */ + public NodeStoppingException(String msg) { + super(msg); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/385668b3/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 7b1d749..f7fe5bd 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 @@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicLong; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteException; import org.apache.ignite.IgniteLogger; +import org.apache.ignite.binary.BinaryObjectException; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException; @@ -1036,6 +1037,9 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter { catch (IgniteCheckedException e) { cacheMsg.onClassError(e); } + catch (BinaryObjectException e) { + cacheMsg.onClassError(new IgniteCheckedException(e)); + } catch (Error e) { if (cacheMsg.ignoreClassErrors() && X.hasCause(e, NoClassDefFoundError.class, UnsupportedClassVersionError.class)) http://git-wip-us.apache.org/repos/asf/ignite/blob/385668b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java index 2449df1..dbc6992 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java @@ -34,6 +34,7 @@ import org.apache.ignite.events.DiscoveryEvent; import org.apache.ignite.events.Event; import org.apache.ignite.internal.IgniteClientDisconnectedCheckedException; import org.apache.ignite.internal.IgniteInternalFuture; +import org.apache.ignite.internal.NodeStoppingException; import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException; import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; @@ -369,7 +370,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter { * @return Node stop exception. */ private IgniteCheckedException stopError() { - return new IgniteCheckedException("Operation has been cancelled (node is stopping)."); + return new NodeStoppingException("Operation has been cancelled (node is stopping)."); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/385668b3/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 7792de3..491ccd2 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 @@ -32,6 +32,7 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteLogger; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.internal.IgniteInternalFuture; +import org.apache.ignite.internal.NodeStoppingException; import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.CacheEntryPredicate; @@ -481,7 +482,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> private void onFailed(boolean dist) { undoLocks(dist); - onComplete(false); + onComplete(false, false); } /** @@ -627,7 +628,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> err = t; } - onComplete(false); + onComplete(false, false); } /** @@ -690,7 +691,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> /** {@inheritDoc} */ @Override public boolean cancel() { if (onCancelled()) - onComplete(false); + onComplete(false, false); return isCancelled(); } @@ -720,7 +721,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> this.err = err; } - return onComplete(success); + return onComplete(success, err instanceof NodeStoppingException); } /** @@ -729,17 +730,17 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> * @param success {@code True} if lock was acquired. * @return {@code True} if complete by this operation. */ - private boolean onComplete(boolean success) { + private boolean onComplete(boolean success, boolean stopping) { if (log.isDebugEnabled()) log.debug("Received onComplete(..) callback [success=" + success + ", fut=" + this + ']'); - if (!success) + if (!success && !stopping) undoLocks(true); if (tx != null) cctx.tm().txContext(tx); - if (err == null) + if (err == null && !stopping) loadMissingFromStore(); if (super.onDone(success, err)) { @@ -771,7 +772,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> */ public void map() { if (F.isEmpty(entries)) { - onComplete(true); + onComplete(true, false); return; } @@ -1062,7 +1063,7 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean> timedOut = true; - onComplete(false); + onComplete(false, false); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/385668b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java index dd9d43f..ba7d6f8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java @@ -429,9 +429,9 @@ public class CacheObjectBinaryProcessorImpl extends IgniteCacheObjectProcessorIm Object obj0 = portableMarsh.unmarshal(arr, null); - assert obj0 instanceof BinaryObject; - - ((BinaryObjectImpl)obj0).detachAllowed(true); + // Possible if a class has writeObject method. + if (obj0 instanceof BinaryObject) + ((BinaryObjectImpl)obj0).detachAllowed(true); return obj0; }