Repository: ignite Updated Branches: refs/heads/master 7cb3e687e -> b02ad0dea
http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java index a4a0c35..1d88742 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java @@ -120,6 +120,9 @@ public class GridDhtPreloader extends GridCachePreloaderAdapter { /** */ private volatile boolean stopping; + /** */ + private boolean stopped; + /** Discovery listener. */ private final GridLocalEventListener discoLsnr = new GridLocalEventListener() { @Override public void onEvent(Event evt) { @@ -222,18 +225,25 @@ public class GridDhtPreloader extends GridCachePreloaderAdapter { // Acquire write busy lock. busyLock.writeLock().lock(); - if (supplier != null) - supplier.stop(); + try { + if (supplier != null) + supplier.stop(); - if (demander != null) - demander.stop(); + if (demander != null) + demander.stop(); - IgniteCheckedException err = stopError(); + IgniteCheckedException err = stopError(); - for (GridDhtForceKeysFuture fut : forceKeyFuts.values()) - fut.onDone(err); + for (GridDhtForceKeysFuture fut : forceKeyFuts.values()) + fut.onDone(err); - top = null; + top = null; + + stopped = true; + } + finally { + busyLock.writeLock().unlock(); + } } /** * @return Node stop exception. @@ -441,13 +451,16 @@ public class GridDhtPreloader extends GridCachePreloaderAdapter { * @return {@code true} if entered to busy state. */ private boolean enterBusy() { - if (busyLock.readLock().tryLock()) - return true; + if (!busyLock.readLock().tryLock()) + return false; - if (log.isDebugEnabled()) - log.debug("Failed to enter busy state on node (exchanger is stopping): " + cctx.nodeId()); + if (stopped) { + busyLock.readLock().unlock(); - return false; + return false; + } + + return true; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java index 8fe33d8..1a925f3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java @@ -200,6 +200,11 @@ public class GridNearSingleGetRequest extends GridCacheMessage implements GridCa return accessTtl; } + /** {@inheritDoc} */ + @Override public int partition() { + return partId; + } + /** * @return Read through flag. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java index af87dfe..90a68ad 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java @@ -514,8 +514,8 @@ public class IgniteTxHandler { for (IgniteTxEntry e : F.concat(false, req.reads(), req.writes())) { GridCacheContext ctx = e.context(); - Collection<ClusterNode> cacheNodes0 = ctx.discovery().cacheAffinityNodes(ctx.name(), expVer); - Collection<ClusterNode> cacheNodes1 = ctx.discovery().cacheAffinityNodes(ctx.name(), curVer); + Collection<ClusterNode> cacheNodes0 = ctx.discovery().cacheAffinityNodes(ctx.cacheId(), expVer); + Collection<ClusterNode> cacheNodes1 = ctx.discovery().cacheAffinityNodes(ctx.cacheId(), curVer); if (!cacheNodes0.equals(cacheNodes1) || ctx.affinity().affinityTopologyVersion().compareTo(curVer) < 0) return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java index 95aab74..ccc17e5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java @@ -354,4 +354,4 @@ public class GridCacheVersion implements Message, Comparable<GridCacheVersion>, ", order=" + order() + ", nodeOrder=" + nodeOrder() + ']'; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java index 9be8b50..5a8904f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java @@ -304,4 +304,4 @@ public class GridCacheVersionManager extends GridCacheSharedManagerAdapter { public GridCacheVersion last() { return last; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java index 0764316..257d0d9 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java @@ -478,4 +478,4 @@ public class GridClockSyncProcessor extends GridProcessorAdapter { curr.onNodeLeft(nodeId); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/util/GridBusyLock.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridBusyLock.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridBusyLock.java index c23e1de..76fef50 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridBusyLock.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridBusyLock.java @@ -79,4 +79,4 @@ public class GridBusyLock { public void unblock() { lock.writeLock().unlock(); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/util/StripedCompositeReadWriteLock.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedCompositeReadWriteLock.java b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedCompositeReadWriteLock.java index 12940e6..e215663 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedCompositeReadWriteLock.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedCompositeReadWriteLock.java @@ -17,15 +17,14 @@ package org.apache.ignite.internal.util; -import org.apache.ignite.thread.IgniteThread; -import org.jetbrains.annotations.NotNull; - import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.apache.ignite.thread.IgniteThread; +import org.jetbrains.annotations.NotNull; /** * ReadWriteLock with striping mechanics. @@ -69,10 +68,15 @@ public class StripedCompositeReadWriteLock implements ReadWriteLock { int idx; if (Thread.currentThread() instanceof IgniteThread) { - idx = ((IgniteThread)Thread.currentThread()).groupIndex(); + IgniteThread igniteThread = (IgniteThread)Thread.currentThread(); + + idx = igniteThread.compositeRwLockIndex(); + + if (idx == IgniteThread.GRP_IDX_UNASSIGNED) { + idx = IDX_GEN.incrementAndGet(); - if (idx == IgniteThread.GRP_IDX_UNASSIGNED) - idx = IDX.get(); + igniteThread.compositeRwLockIndex(idx); + } } else idx = IDX.get(); @@ -135,7 +139,7 @@ public class StripedCompositeReadWriteLock implements ReadWriteLock { * Internal lock routine. * * @param canInterrupt Whether to acquire the lock interruptibly. - * @throws InterruptedException + * @throws InterruptedException If interrupted. */ private void lock0(boolean canInterrupt) throws InterruptedException { int i = 0; @@ -167,13 +171,41 @@ public class StripedCompositeReadWriteLock implements ReadWriteLock { /** {@inheritDoc} */ @Override public boolean tryLock() { - throw new UnsupportedOperationException(); + int i = 0; + + try { + for (; i < locks.length; i++) { + if (!locks[i].writeLock().tryLock()) + break; + } + } + finally { + if (0 < i && i < locks.length) + unlock0(i - 1); + } + + return i == locks.length; } /** {@inheritDoc} */ @SuppressWarnings("NullableProblems") @Override public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { - throw new UnsupportedOperationException(); + int i = 0; + + long end = unit.toNanos(time) + System.nanoTime(); + + try { + for (; i < locks.length && System.nanoTime() < end; i++) { + if (!locks[i].writeLock().tryLock(time, unit)) + break; + } + } + finally { + if (0 < i && i < locks.length) + unlock0(i - 1); + } + + return i == locks.length; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java index e70f0ce..b5ef431 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/StripedExecutor.java @@ -125,11 +125,11 @@ public class StripedExecutor implements ExecutorService { GridStringBuilder sb = new GridStringBuilder(); - sb.a(">>> Possible starvation in striped pool: ") - .a(stripe.thread.getName()).a(U.nl()) - .a(stripe.queueToString()).a(U.nl()) - .a("deadlock: ").a(deadlockPresent).a(U.nl()) - .a("completed: ").a(completedCnt).a(U.nl()); + sb.a(">>> Possible starvation in striped pool.").a(U.nl()) + .a(" Thread name: ").a(stripe.thread.getName()).a(U.nl()) + .a(" Queue: ").a(stripe.queueToString()).a(U.nl()) + .a(" Deadlock: ").a(deadlockPresent).a(U.nl()) + .a(" Completed: ").a(completedCnt).a(U.nl()); U.printStackTrace( stripe.thread.getId(), http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridAbstractCommunicationClient.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridAbstractCommunicationClient.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridAbstractCommunicationClient.java index f2ab932..6302d84 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridAbstractCommunicationClient.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridAbstractCommunicationClient.java @@ -17,7 +17,7 @@ package org.apache.ignite.internal.util.nio; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicBoolean; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; import org.jetbrains.annotations.Nullable; @@ -30,7 +30,7 @@ public abstract class GridAbstractCommunicationClient implements GridCommunicati private volatile long lastUsed = U.currentTimeMillis(); /** Reservations. */ - private final AtomicInteger reserves = new AtomicInteger(); + private final AtomicBoolean closed = new AtomicBoolean(); /** Metrics listener. */ protected final GridNioMetricsListener metricsLsnr; @@ -54,48 +54,27 @@ public abstract class GridAbstractCommunicationClient implements GridCommunicati /** {@inheritDoc} */ @Override public boolean close() { - return reserves.compareAndSet(0, -1); + return !closed.get() && closed.compareAndSet(false, true); } /** {@inheritDoc} */ @Override public void forceClose() { - reserves.set(-1); + closed.set(false); } /** {@inheritDoc} */ @Override public boolean closed() { - return reserves.get() == -1; + return closed.get(); } /** {@inheritDoc} */ @Override public boolean reserve() { - while (true) { - int r = reserves.get(); - - if (r == -1) - return false; - - if (reserves.compareAndSet(r, r + 1)) - return true; - } + return !closed.get(); } /** {@inheritDoc} */ @Override public void release() { - while (true) { - int r = reserves.get(); - - if (r == -1) - return; - - if (reserves.compareAndSet(r, r - 1)) - return; - } - } - - /** {@inheritDoc} */ - @Override public boolean reserved() { - return reserves.get() > 0; + // No-op. } /** {@inheritDoc} */ @@ -119,4 +98,4 @@ public abstract class GridAbstractCommunicationClient implements GridCommunicati @Override public String toString() { return S.toString(GridAbstractCommunicationClient.class, this); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridCommunicationClient.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridCommunicationClient.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridCommunicationClient.java index 71b2c24..f872ff6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridCommunicationClient.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridCommunicationClient.java @@ -69,11 +69,6 @@ public interface GridCommunicationClient { public void release(); /** - * @return {@code True} if client was reserved. - */ - public boolean reserved(); - - /** * Gets idle time of this client. * * @return Idle time of this client. http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java index 4c89a7c..2664505 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java @@ -361,6 +361,10 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter @Override public void onConnected(GridNioSession ses) { if (ses.accepted()) { + if (log.isInfoEnabled()) + log.info("Accepted incoming communication connection [locAddr=" + ses.localAddress() + + ", rmtAddr=" + ses.remoteAddress() + ']'); + if (log.isDebugEnabled()) log.debug("Sending local node ID to newly accepted session: " + ses); @@ -371,6 +375,11 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter U.error(log, "Failed to send message: " + e, e); } } + else { + if (log.isInfoEnabled()) + log.info("Established outgoing communication connection [locAddr=" + ses.localAddress() + + ", rmtAddr=" + ses.remoteAddress() + ']'); + } } @Override public void onDisconnected(GridNioSession ses, @Nullable Exception e) { http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java index 03ed589..0f987e1 100644 --- a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java +++ b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java @@ -18,6 +18,7 @@ package org.apache.ignite.thread; import java.util.concurrent.atomic.AtomicLong; +import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.worker.GridWorker; @@ -48,6 +49,9 @@ public class IgniteThread extends Thread { /** Group index. */ private final int grpIdx; + /** */ + private int compositeRwLockIdx; + /** * Creates thread with given worker. * @@ -93,8 +97,10 @@ public class IgniteThread extends Thread { public IgniteThread(ThreadGroup grp, String gridName, String threadName, Runnable r, int grpIdx) { super(grp, r, createName(cntr.incrementAndGet(), threadName, gridName)); + A.ensure(grpIdx >= -1, "grpIdx >= -1"); + this.gridName = gridName; - this.grpIdx = grpIdx; + this.grpIdx = compositeRwLockIdx = grpIdx; } /** @@ -106,7 +112,7 @@ public class IgniteThread extends Thread { super(threadGrp, threadName); this.gridName = gridName; - this.grpIdx = GRP_IDX_UNASSIGNED; + this.grpIdx = compositeRwLockIdx = GRP_IDX_UNASSIGNED; } /** @@ -126,6 +132,20 @@ public class IgniteThread extends Thread { } /** + * @return Composite RW lock index. + */ + public int compositeRwLockIndex() { + return compositeRwLockIdx; + } + + /** + * @param compositeRwLockIdx Composite RW lock index. + */ + public void compositeRwLockIndex(int compositeRwLockIdx) { + this.compositeRwLockIdx = compositeRwLockIdx; + } + + /** * Creates new thread name. * * @param num Thread number. @@ -141,4 +161,4 @@ public class IgniteThread extends Thread { @Override public String toString() { return S.toString(IgniteThread.class, this, "name", getName()); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java index 031fad9..03cbdbd 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAliveCacheSelfTest.java @@ -23,15 +23,11 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.CountDownLatch; import org.apache.ignite.Ignite; -import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.configuration.NearCacheConfiguration; import org.apache.ignite.events.Event; import org.apache.ignite.events.EventType; -import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; -import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.G; import org.apache.ignite.lang.IgnitePredicate; @@ -157,8 +153,6 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe stopTempNodes(); latch.await(); - - validateAlives(); } } @@ -199,55 +193,6 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe } /** - * Validates that all node collections contain actual information. - */ - @SuppressWarnings("SuspiciousMethodCalls") - private void validateAlives() { - for (Ignite g : alive) { - log.info("Validate node: " + g.name()); - - assertEquals("Unexpected nodes number for node: " + g.name(), PERM_NODES_CNT, g.cluster().nodes().size()); - } - - for (final Ignite g : alive) { - IgniteKernal k = (IgniteKernal)g; - - GridDiscoveryManager discoMgr = k.context().discovery(); - - final Collection<ClusterNode> currTop = g.cluster().nodes(); - - long currVer = discoMgr.topologyVersion(); - - long startVer = discoMgr.localNode().order(); - - for (long v = currVer; v > currVer - GridDiscoveryManager.DISCOVERY_HISTORY_SIZE && v >= startVer; v--) { - F.forAll(discoMgr.aliveCacheNodes(null, new AffinityTopologyVersion(v)), - new IgnitePredicate<ClusterNode>() { - @Override public boolean apply(ClusterNode e) { - return currTop.contains(e); - } - }); - - F.forAll(discoMgr.aliveRemoteCacheNodes(null, new AffinityTopologyVersion(v)), - new IgnitePredicate<ClusterNode>() { - @Override public boolean apply(ClusterNode e) { - return currTop.contains(e) || g.cluster().localNode().equals(e); - } - }); - - GridCacheSharedContext<?, ?> ctx = k.context().cache().context(); - - ClusterNode oldest = - ctx.discovery().oldestAliveCacheServerNode(new AffinityTopologyVersion(currVer)); - - assertNotNull(oldest); - - assertTrue(currTop.contains(oldest)); - } - } - } - - /** * Starts temporary nodes. * * @throws Exception If failed. http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java deleted file mode 100644 index c9179d4..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * 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.managers.discovery; - -import org.apache.ignite.Ignite; -import org.apache.ignite.Ignition; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.configuration.NearCacheConfiguration; -import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; -import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.lang.IgnitePredicate; -import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; -import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; - -import static org.apache.ignite.cache.CacheMode.PARTITIONED; - -/** - * - */ -public abstract class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest { - /** */ - private static final String CACHE_NAME = "cache"; - - /** */ - private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true); - - /** {@inheritDoc} */ - @Override protected void afterTest() throws Exception { - stopAllGrids(); - } - - /** {@inheritDoc} */ - @SuppressWarnings("IfMayBeConditional") - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - CacheConfiguration ccfg1 = defaultCacheConfiguration(); - - ccfg1.setName(CACHE_NAME); - - CacheConfiguration ccfg2 = defaultCacheConfiguration(); - - ccfg2.setName(null); - - if (gridName.equals(getTestGridName(1))) - cfg.setClientMode(true); - else { - ccfg1.setNearConfiguration(null); - ccfg2.setNearConfiguration(null); - - ccfg1.setCacheMode(PARTITIONED); - ccfg2.setCacheMode(PARTITIONED); - - cfg.setCacheConfiguration(ccfg1, ccfg2); - } - - TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi(); - - discoverySpi.setIpFinder(IP_FINDER); - - cfg.setDiscoverySpi(discoverySpi); - - return cfg; - } - - /** - * @throws Exception If failed. - */ - public void testHasNearCache() throws Exception { - IgniteKernal g0 = (IgniteKernal)startGrid(0); // PARTITIONED_ONLY cache. - - AffinityTopologyVersion none = new AffinityTopologyVersion(-1); - AffinityTopologyVersion one = new AffinityTopologyVersion(1); - AffinityTopologyVersion two = new AffinityTopologyVersion(2, 2); - AffinityTopologyVersion three = new AffinityTopologyVersion(3); - AffinityTopologyVersion four = new AffinityTopologyVersion(4); - AffinityTopologyVersion five = new AffinityTopologyVersion(5); - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, none)); - assertFalse(g0.context().discovery().hasNearCache(null, none)); - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); - assertFalse(g0.context().discovery().hasNearCache(null, one)); - - IgniteKernal g1 = (IgniteKernal)startGrid(1); // NEAR_ONLY cache. - - grid(1).createNearCache(null, new NearCacheConfiguration()); - - grid(1).createNearCache(CACHE_NAME, new NearCacheConfiguration()); - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); - assertFalse(g0.context().discovery().hasNearCache(null, one)); - assertTrue(g0.context().discovery().hasNearCache(null, two)); - - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, two)); - assertTrue(g1.context().discovery().hasNearCache(null, two)); - - IgniteKernal g2 = (IgniteKernal)startGrid(2); // PARTITIONED_ONLY cache. - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); - assertFalse(g0.context().discovery().hasNearCache(null, one)); - assertTrue(g0.context().discovery().hasNearCache(null, two)); - assertTrue(g0.context().discovery().hasNearCache(null, three)); - - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, two)); - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, three)); - assertTrue(g1.context().discovery().hasNearCache(null, two)); - assertTrue(g1.context().discovery().hasNearCache(null, three)); - - assertTrue(g2.context().discovery().hasNearCache(CACHE_NAME, three)); - assertTrue(g2.context().discovery().hasNearCache(null, three)); - - stopGrid(2); - - // Wait all nodes are on version 4. - for (;;) { - if (F.forAll( - Ignition.allGrids(), - new IgnitePredicate<Ignite>() { - @Override public boolean apply(Ignite ignite) { - return ignite.cluster().topologyVersion() == 4; - } - })) - break; - - Thread.sleep(1000); - } - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, four)); - assertFalse(g0.context().discovery().hasNearCache(null, one)); - assertTrue(g0.context().discovery().hasNearCache(null, two)); - assertTrue(g0.context().discovery().hasNearCache(null, three)); - assertTrue(g0.context().discovery().hasNearCache(null, four)); - - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, three)); - assertTrue(g1.context().discovery().hasNearCache(CACHE_NAME, four)); - assertTrue(g1.context().discovery().hasNearCache(null, three)); - assertTrue(g1.context().discovery().hasNearCache(null, four)); - - stopGrid(1); - - // Wait all nodes are on version 5. - for (;;) { - if (F.forAll( - Ignition.allGrids(), - new IgnitePredicate<Ignite>() { - @Override public boolean apply(Ignite ignite) { - return ignite.cluster().topologyVersion() == 5; - } - })) - break; - - Thread.sleep(1000); - } - - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, three)); - assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, four)); - assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, five)); - - assertFalse(g0.context().discovery().hasNearCache(null, one)); - assertTrue(g0.context().discovery().hasNearCache(null, two)); - assertTrue(g0.context().discovery().hasNearCache(null, three)); - assertTrue(g0.context().discovery().hasNearCache(null, four)); - assertFalse(g0.context().discovery().hasNearCache(null, five)); - } - - /** - * - */ - public static class RegularDiscovery extends GridDiscoveryManagerSelfTest { - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true); - - return cfg; - } - } - - /** - * - */ - public static class ClientDiscovery extends GridDiscoveryManagerSelfTest { - // No-op. - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java index b28619c..41035ec 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java @@ -26,7 +26,6 @@ import org.apache.ignite.internal.GridDiscoverySelfTest; import org.apache.ignite.internal.GridFailedInputParametersSelfTest; import org.apache.ignite.internal.GridHomePathSelfTest; import org.apache.ignite.internal.GridKernalConcurrentAccessStopSelfTest; -import org.apache.ignite.internal.IgniteConcurrentEntryProcessorAccessStopTest; import org.apache.ignite.internal.GridListenActorSelfTest; import org.apache.ignite.internal.GridLocalEventListenerSelfTest; import org.apache.ignite.internal.GridNodeFilterSelfTest; @@ -36,13 +35,13 @@ import org.apache.ignite.internal.GridRuntimeExceptionSelfTest; import org.apache.ignite.internal.GridSameVmStartupSelfTest; import org.apache.ignite.internal.GridSpiExceptionSelfTest; import org.apache.ignite.internal.GridVersionSelfTest; +import org.apache.ignite.internal.IgniteConcurrentEntryProcessorAccessStopTest; import org.apache.ignite.internal.IgniteUpdateNotifierPerClusterSettingSelfTest; import org.apache.ignite.internal.managers.GridManagerStopSelfTest; import org.apache.ignite.internal.managers.communication.GridCommunicationSendMessageSelfTest; import org.apache.ignite.internal.managers.deployment.GridDeploymentManagerStopSelfTest; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManagerAliveCacheSelfTest; import org.apache.ignite.internal.managers.discovery.GridDiscoveryManagerAttributesSelfTest; -import org.apache.ignite.internal.managers.discovery.GridDiscoveryManagerSelfTest; import org.apache.ignite.internal.managers.discovery.IgniteTopologyPrintFormatSelfTest; import org.apache.ignite.internal.managers.events.GridEventStorageManagerSelfTest; import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManagerSelfTest; @@ -111,8 +110,6 @@ public class IgniteKernalSelfTestSuite extends TestSuite { suite.addTestSuite(GridDiscoveryManagerAttributesSelfTest.RegularDiscovery.class); suite.addTestSuite(GridDiscoveryManagerAttributesSelfTest.ClientDiscovery.class); suite.addTestSuite(GridDiscoveryManagerAliveCacheSelfTest.class); - suite.addTestSuite(GridDiscoveryManagerSelfTest.RegularDiscovery.class); - suite.addTestSuite(GridDiscoveryManagerSelfTest.ClientDiscovery.class); suite.addTestSuite(GridDiscoveryEventSelfTest.class); suite.addTestSuite(GridPortProcessorSelfTest.class); suite.addTestSuite(GridHomePathSelfTest.class); http://git-wip-us.apache.org/repos/asf/ignite/blob/b02ad0de/modules/tools/src/main/java/org/apache/ignite/tools/classgen/ClassesGenerator.java ---------------------------------------------------------------------- diff --git a/modules/tools/src/main/java/org/apache/ignite/tools/classgen/ClassesGenerator.java b/modules/tools/src/main/java/org/apache/ignite/tools/classgen/ClassesGenerator.java index 360bb2a..ecc0654 100644 --- a/modules/tools/src/main/java/org/apache/ignite/tools/classgen/ClassesGenerator.java +++ b/modules/tools/src/main/java/org/apache/ignite/tools/classgen/ClassesGenerator.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.TreeSet; -import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; @@ -212,7 +211,8 @@ public class ClassesGenerator { if (included) { Class<?> cls = Class.forName(clsName, false, ldr); - if (Serializable.class.isAssignableFrom(cls) && !AbstractQueuedSynchronizer.class.isAssignableFrom(cls)) { + if (Serializable.class.isAssignableFrom(cls) && + !(cls.getName().endsWith("Future") || cls.getName().endsWith("FutureAdapter"))) { if (!cls.isInterface() && !Modifier.isAbstract(cls.getModifiers()) && !cls.isEnum() && !cls.getSimpleName().isEmpty()) { try {
