You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/09/27 15:18:37 UTC

[1/9] ignite git commit: IGNITE-3639: IGFS: Removed BufferedOutputStream from LocalIgfsSecondaryFileSystem because it doesn't give any performance benefit.

Repository: ignite
Updated Branches:
  refs/heads/ignite-3601p 0c64a7865 -> 72da2db6c


IGNITE-3639: IGFS: Removed BufferedOutputStream from LocalIgfsSecondaryFileSystem because it doesn't give any performance benefit.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/39fc5477
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/39fc5477
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/39fc5477

Branch: refs/heads/ignite-3601p
Commit: 39fc5477c19cbe2b2116aaf575a2d0a9c9a618b1
Parents: c2a3f11
Author: tledkov-gridgain <tl...@gridgain.com>
Authored: Tue Sep 27 14:48:18 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Sep 27 14:48:18 2016 +0300

----------------------------------------------------------------------
 .../local/LocalIgfsSecondaryFileSystem.java      | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/39fc5477/modules/core/src/main/java/org/apache/ignite/igfs/secondary/local/LocalIgfsSecondaryFileSystem.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/igfs/secondary/local/LocalIgfsSecondaryFileSystem.java b/modules/core/src/main/java/org/apache/ignite/igfs/secondary/local/LocalIgfsSecondaryFileSystem.java
index 8dd4fda..1775db6 100644
--- a/modules/core/src/main/java/org/apache/ignite/igfs/secondary/local/LocalIgfsSecondaryFileSystem.java
+++ b/modules/core/src/main/java/org/apache/ignite/igfs/secondary/local/LocalIgfsSecondaryFileSystem.java
@@ -34,7 +34,6 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lifecycle.LifecycleAware;
 import org.jetbrains.annotations.Nullable;
 
-import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -53,9 +52,6 @@ import java.util.Map;
  * Secondary file system which delegates to local file system.
  */
 public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, LifecycleAware {
-    /** Default buffer size. */
-    private static final int DFLT_BUF_SIZE = 8 * 1024;
-
     /** Path that will be added to each passed path. */
     private String workDir;
 
@@ -256,13 +252,13 @@ public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, Li
 
     /** {@inheritDoc} */
     @Override public OutputStream create(IgfsPath path, boolean overwrite) {
-        return create0(path, overwrite, DFLT_BUF_SIZE);
+        return create0(path, overwrite);
     }
 
     /** {@inheritDoc} */
     @Override public OutputStream create(IgfsPath path, int bufSize, boolean overwrite, int replication,
         long blockSize, @Nullable Map<String, String> props) {
-        return create0(path, overwrite, bufSize);
+        return create0(path, overwrite);
     }
 
     /** {@inheritDoc} */
@@ -274,10 +270,10 @@ public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, Li
             boolean exists = file.exists();
 
             if (exists)
-                return new BufferedOutputStream(new FileOutputStream(file, true), bufSize);
+                return new FileOutputStream(file, true);
             else {
                 if (create)
-                    return create0(path, false, bufSize);
+                    return create0(path, false);
                 else
                     throw new IgfsPathNotFoundException("Failed to append to file because it doesn't exist: " + path);
             }
@@ -389,11 +385,10 @@ public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, Li
      * Internal create routine.
      *
      * @param path Path.
-     * @param overwrite Overwirte flag.
-     * @param bufSize Buffer size.
+     * @param overwrite Overwrite flag.
      * @return Output stream.
      */
-    private OutputStream create0(IgfsPath path, boolean overwrite, int bufSize) {
+    private OutputStream create0(IgfsPath path, boolean overwrite) {
         File file = fileForPath(path);
 
         boolean exists = file.exists();
@@ -411,7 +406,7 @@ public class LocalIgfsSecondaryFileSystem implements IgfsSecondaryFileSystem, Li
         }
 
         try {
-            return new BufferedOutputStream(new FileOutputStream(file), bufSize);
+            return new FileOutputStream(file);
         }
         catch (IOException e) {
             throw handleSecondaryFsError(e, "Failed to create file [path=" + path + ", overwrite=" + overwrite + ']');


[7/9] ignite git commit: Merge remote-tracking branch 'upstream/ignite-1.6.9' into ignite-1.6.9

Posted by sb...@apache.org.
Merge remote-tracking branch 'upstream/ignite-1.6.9' into ignite-1.6.9


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8127667a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8127667a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8127667a

Branch: refs/heads/ignite-3601p
Commit: 8127667a14184f77bc0f686d21e3062ae19260a3
Parents: 7f8281c 8ba2b94
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Sep 27 16:37:56 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Sep 27 16:37:56 2016 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    |  2 +-
 .../discovery/GridDiscoveryManager.java         | 73 ++++++++++----------
 .../util/GridBoundedConcurrentOrderedMap.java   |  5 ++
 .../TcpDiscoveryMulticastIpFinder.java          |  3 -
 .../IgniteClientReconnectCacheTest.java         | 35 ++++++++++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |  4 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |  6 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |  2 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |  2 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |  6 +-
 10 files changed, 90 insertions(+), 48 deletions(-)
----------------------------------------------------------------------



[4/9] ignite git commit: Merge remote-tracking branch 'community/ignite-1.6.9' into ignite-1.6.9

Posted by sb...@apache.org.
Merge remote-tracking branch 'community/ignite-1.6.9' into ignite-1.6.9


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/82b44fe7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/82b44fe7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/82b44fe7

Branch: refs/heads/ignite-3601p
Commit: 82b44fe7e495b418bc4463036f4a6b7169bac6d6
Parents: c8dc92e 5cffd3c
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 27 15:17:54 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 27 15:17:54 2016 +0300

----------------------------------------------------------------------
 .../local/LocalIgfsSecondaryFileSystem.java     |  19 ++-
 .../ignite/testframework/IgniteTestSuite.java   | 122 ++++++++++++++-----
 .../testframework/junits/GridAbstractTest.java  |  22 +++-
 .../apache/ignite/testsuites/IgniteIgnore.java  |  11 +-
 .../testsuites/IgniteIgnoredTestSuite.java      |  63 ----------
 modules/ignored-tests/README.txt                |   4 +
 modules/ignored-tests/pom.xml                   |  93 ++++++++++++++
 .../testsuites/IgniteIgnoredTestSuite.java      |  50 ++++++++
 .../apache/ignite/testsuites/package-info.java  |  22 ++++
 .../IgniteWebSessionSelfTestSuite.java          |  68 +----------
 .../WebSessionReplicatedSelfTest.java           |  28 +++++
 .../WebSessionReplicatedV1SelfTest.java         |  28 +++++
 .../internal/websession/WebSessionSelfTest.java |   2 +
 .../WebSessionTransactionalSelfTest.java        |  48 ++++++++
 .../WebSessionTransactionalV1SelfTest.java      |  28 +++++
 .../websession/WebSessionV1SelfTest.java        |  28 +++++
 pom.xml                                         |   7 ++
 17 files changed, 466 insertions(+), 177 deletions(-)
----------------------------------------------------------------------



[9/9] ignite git commit: ignite-3601

Posted by sb...@apache.org.
ignite-3601


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/72da2db6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/72da2db6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/72da2db6

Branch: refs/heads/ignite-3601p
Commit: 72da2db6cde261546700ee19910d6069145cfd3c
Parents: 8f92420
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 27 18:18:20 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 27 18:18:20 2016 +0300

----------------------------------------------------------------------
 .../transactions/IgniteTxLocalAdapter.java      |  4 +-
 .../CacheSerializableTransactionsTest.java      | 47 ++++++++++----------
 .../testsuites/IgniteCacheTestSuite4.java       |  2 +
 3 files changed, 27 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/72da2db6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index ce6275e..c12e595 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -2274,10 +2274,8 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter implements Ig
                             if (hasFilters) {
                                 success = isAll(e.context(), key, cacheVal, filter);
 
-                                if (!success) {
-                                    e.op(READ);
+                                if (!success)
                                     e.value(cacheVal, false, false);
-                                }
                             }
                             else
                                 success = true;

http://git-wip-us.apache.org/repos/asf/ignite/blob/72da2db6/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
index e3d321c..6a73f79 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheSerializableTransactionsTest.java
@@ -709,6 +709,7 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
 
     /**
      * @param noVal If {@code true} there is no cache value when read in tx.
+     * @param needVer If {@code true} then gets entry, otherwise just value.
      * @throws Exception If failed.
      */
     private void txConflictRead(boolean noVal, boolean needVer) throws Exception {
@@ -735,28 +736,21 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
                         cache.put(key, expVal);
                     }
 
-                    try {
-                        try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) {
-                            if (needVer) {
-                                CacheEntry<Integer, Integer> val = cache.getEntry(key);
-
-                                assertEquals(expVal, val == null ? null : val.getValue());
-                            }
-                            else {
-                                Integer val = cache.get(key);
-
-                                assertEquals(expVal, val);
-                            }
+                    try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) {
+                        if (needVer) {
+                            CacheEntry<Integer, Integer> val = cache.getEntry(key);
 
-                            updateKey(cache, key, 1);
+                            assertEquals(expVal, val == null ? null : val.getValue());
+                        }
+                        else {
+                            Integer val = cache.get(key);
 
-                            tx.commit();
+                            assertEquals(expVal, val);
                         }
 
-                        fail();
-                    }
-                    catch (TransactionOptimisticException e) {
-                        log.info("Expected exception: " + e);
+                        updateKey(cache, key, 1);
+
+                        tx.commit();
                     }
 
                     checkValue(key, 1, cache.getName());
@@ -1356,14 +1350,21 @@ public class CacheSerializableTransactionsTest extends GridCommonAbstractTest {
 
                     checkValue(key, 2, cache.getName());
 
-                    try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) {
-                        Object old = cache.getAndPutIfAbsent(key, 4);
+                    try {
+                        try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) {
+                            Object old = cache.getAndPutIfAbsent(key, 4);
 
-                        assertEquals(2, old);
+                            assertEquals(2, old);
 
-                        updateKey(cache, key, 3);
+                            updateKey(cache, key, 3);
 
-                        tx.commit();
+                            tx.commit();
+                        }
+
+                        fail();
+                    }
+                    catch (TransactionOptimisticException e) {
+                        log.info("Expected exception: " + e);
                     }
 
                     checkValue(key, 3, cache.getName());

http://git-wip-us.apache.org/repos/asf/ignite/blob/72da2db6/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index c494e73..bcbc059 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticReadC
 import org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticRepeatableReadSeltTest;
 import org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticSerializableSeltTest;
 import org.apache.ignite.internal.processors.cache.CacheOffheapMapEntrySelfTest;
+import org.apache.ignite.internal.processors.cache.CachePutIfAbsentTestTest;
 import org.apache.ignite.internal.processors.cache.CacheReadThroughAtomicRestartSelfTest;
 import org.apache.ignite.internal.processors.cache.CacheReadThroughLocalAtomicRestartSelfTest;
 import org.apache.ignite.internal.processors.cache.CacheReadThroughLocalRestartSelfTest;
@@ -326,6 +327,7 @@ public class IgniteCacheTestSuite4 extends TestSuite {
         suite.addTestSuite(IgniteCachePrimarySyncTest.class);
         suite.addTestSuite(IgniteTxCachePrimarySyncTest.class);
         suite.addTestSuite(IgniteTxCacheWriteSynchronizationModesMultithreadedTest.class);
+        suite.addTestSuite(CachePutIfAbsentTestTest.class);
 
         suite.addTestSuite(MarshallerCacheJobRunNodeRestartTest.class);
 


[2/9] ignite git commit: IGNITE-3661: First attempt to move ignored and flaky tests into a single suite. Applied to web-session module.

Posted by sb...@apache.org.
IGNITE-3661: First attempt to move ignored and flaky tests into a single suite. Applied to web-session module.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5cffd3c3
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5cffd3c3
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5cffd3c3

Branch: refs/heads/ignite-3601p
Commit: 5cffd3c3d6cb006e3745c314d6f85a066e6a0f06
Parents: 39fc547
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Sep 27 15:13:21 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Sep 27 15:13:21 2016 +0300

----------------------------------------------------------------------
 .../ignite/testframework/IgniteTestSuite.java   | 122 ++++++++++++++-----
 .../testframework/junits/GridAbstractTest.java  |  22 +++-
 .../apache/ignite/testsuites/IgniteIgnore.java  |  11 +-
 .../testsuites/IgniteIgnoredTestSuite.java      |  63 ----------
 modules/ignored-tests/README.txt                |   4 +
 modules/ignored-tests/pom.xml                   |  93 ++++++++++++++
 .../testsuites/IgniteIgnoredTestSuite.java      |  50 ++++++++
 .../apache/ignite/testsuites/package-info.java  |  22 ++++
 .../IgniteWebSessionSelfTestSuite.java          |  68 +----------
 .../WebSessionReplicatedSelfTest.java           |  28 +++++
 .../WebSessionReplicatedV1SelfTest.java         |  28 +++++
 .../internal/websession/WebSessionSelfTest.java |   2 +
 .../WebSessionTransactionalSelfTest.java        |  48 ++++++++
 .../WebSessionTransactionalV1SelfTest.java      |  28 +++++
 .../websession/WebSessionV1SelfTest.java        |  28 +++++
 pom.xml                                         |   7 ++
 16 files changed, 459 insertions(+), 165 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
index 2828065..4153600 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
@@ -20,6 +20,8 @@ package org.apache.ignite.testframework;
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.testframework.junits.GridAbstractTest;
 import org.apache.ignite.testsuites.IgniteIgnore;
 import org.jetbrains.annotations.Nullable;
 import org.junit.internal.MethodSorter;
@@ -94,16 +96,6 @@ public class IgniteTestSuite extends TestSuite {
 
     /** {@inheritDoc} */
     @Override public void addTestSuite(Class<? extends TestCase> testClass) {
-        addTestSuite(testClass, false);
-    }
-
-    /**
-     * Add test class to the suite.
-     *
-     * @param testClass Test class.
-     * @param ignoredOnly Ignore only flag.
-     */
-    public void addTestSuite(Class<? extends TestCase> testClass, boolean ignoredOnly) {
         addTest(new IgniteTestSuite(testClass, ignoredOnly));
     }
 
@@ -133,6 +125,7 @@ public class IgniteTestSuite extends TestSuite {
 
             for(List<String> names = new ArrayList<>(); Test.class.isAssignableFrom(superCls);
                 superCls = superCls.getSuperclass()) {
+
                 Method[] methods = MethodSorter.getDeclaredMethods(superCls);
 
                 for (Method each : methods) {
@@ -147,45 +140,110 @@ public class IgniteTestSuite extends TestSuite {
     }
 
     /**
-     * @param method test method
-     * @param names test name list
-     * @param theClass test class
+     * Add test method.
+     *
+     * @param m Test method.
+     * @param names Test name list.
+     * @param theClass Test class.
+     * @return Whether test method was added.
      */
-    private boolean addTestMethod(Method method, List<String> names, Class<?> theClass) {
-        String name = method.getName();
+    private boolean addTestMethod(Method m, List<String> names, Class<?> theClass) {
+        String name = m.getName();
+
+        if (names.contains(name))
+            return false;
+
+        if (!isPublicTestMethod(m)) {
+            if (isTestMethod(m))
+                addTest(warning("Test method isn't public: " + m.getName() + "(" + theClass.getCanonicalName() + ")"));
+
+            return false;
+        }
+
+        names.add(name);
+
+        boolean hasIgnore = m.isAnnotationPresent(IgniteIgnore.class);
+
+        if (ignoredOnly) {
+            if (hasIgnore) {
+                IgniteIgnore ignore = m.getAnnotation(IgniteIgnore.class);
+
+                String reason = ignore.value();
+
+                if (F.isEmpty(reason))
+                    throw new IllegalArgumentException("Reason is not set for ignored test [class=" +
+                        theClass.getName() + ", method=" + name + ']');
 
-        if(!names.contains(name) && canAddMethod(method)) {
-            if(!Modifier.isPublic(method.getModifiers()))
-                addTest(warning("Test method isn\'t public: " + method.getName() + "(" +
-                    theClass.getCanonicalName() + ")"));
-            else {
-                names.add(name);
+                Test test = createTest(theClass, name);
 
+                if (ignore.forceFailure()) {
+                    if (test instanceof GridAbstractTest)
+                        ((GridAbstractTest)test).forceFailure(ignore.value());
+                    else
+                        test = new ForcedFailure(name, ignore.value());
+                }
+
+                addTest(test);
+
+                return true;
+            }
+        }
+        else {
+            if (!hasIgnore) {
                 addTest(createTest(theClass, name));
 
                 return true;
             }
         }
+
         return false;
     }
 
     /**
-     * Check whether method should be ignored.
+     * Check whether this is a test method.
      *
-     * @param method Method.
-     * @return {@code True} if it should be ignored.
+     * @param m Method.
+     * @return {@code True} if this is a test method.
      */
-    protected boolean canAddMethod(Method method) {
-        boolean res = method.getParameterTypes().length == 0 && method.getName().startsWith("test")
-            && method.getReturnType().equals(Void.TYPE);
+    private static boolean isTestMethod(Method m) {
+        return m.getParameterTypes().length == 0 &&
+            m.getName().startsWith("test") &&
+            m.getReturnType().equals(Void.TYPE);
+    }
 
-        if (res) {
-            // If method signature and name matches check if it is ignored or not.
-            boolean hasIgnore = method.isAnnotationPresent(IgniteIgnore.class);
+    /**
+     * Check whether this is a public test method.
+     *
+     * @param m Method.
+     * @return {@code True} if this is a public test method.
+     */
+    private static boolean isPublicTestMethod(Method m) {
+        return isTestMethod(m) && Modifier.isPublic(m.getModifiers());
+    }
 
-            res = hasIgnore == ignoredOnly;
+    /**
+     * Test case simulating failure.
+     */
+    private static class ForcedFailure extends TestCase {
+        /** Message. */
+        private final String msg;
+
+        /**
+         * Constructor.
+         *
+         * @param name Name.
+         * @param msg  Message.
+         */
+        private ForcedFailure(String name, String msg) {
+            super(name);
+
+            this.msg = msg;
         }
 
-        return res;
+        /** {@inheritDoc} */
+        @Override protected void runTest() {
+            fail("Forced failure: " + msg + " (extend " + GridAbstractTest.class.getSimpleName() +
+                " for better output).");
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 3910ce4..8d6fd07 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -155,6 +155,12 @@ public abstract class GridAbstractTest extends TestCase {
     /** Starting grid name. */
     protected static final ThreadLocal<String> startingGrid = new ThreadLocal<>();
 
+    /** Force failure flag. */
+    private boolean forceFailure;
+
+    /** Force failure message. */
+    private String forceFailureMsg;
+
     /**
      *
      */
@@ -1753,11 +1759,25 @@ public abstract class GridAbstractTest extends TestCase {
     }
 
     /**
+     * Force test failure.
+     *
+     * @param msg Message.
+     */
+    public void forceFailure(@Nullable String msg) {
+        forceFailure = true;
+
+        forceFailureMsg = msg;
+    }
+
+    /**
      * @throws Throwable If failed.
      */
     @SuppressWarnings({"ProhibitedExceptionDeclared"})
     private void runTestInternal() throws Throwable {
-        super.runTest();
+        if (forceFailure)
+            fail("Forced failure: " + forceFailureMsg);
+        else
+            super.runTest();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnore.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnore.java
index ac9a885..dbb1d7a 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnore.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnore.java
@@ -26,10 +26,15 @@ import java.lang.annotation.Target;
  * Annotation which indicates that the test is ignored.
  */
 @Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD, ElementType.TYPE})
+@Target({ElementType.METHOD})
 public @interface IgniteIgnore {
     /**
-     * The optional reason why the test is ignored.
+     * Reason for ignore (usually link to JIRA ticket).
      */
-    String value() default "";
+    String value();
+
+    /**
+     * Whether test should be failed immediately. Useful when test hangs or consumes a lot of time.
+     */
+    boolean forceFailure() default false;
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
deleted file mode 100644
index c3ec5e4..0000000
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
+++ /dev/null
@@ -1,63 +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.testsuites;
-
-import junit.framework.TestSuite;
-import org.apache.ignite.testframework.IgniteTestSuite;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-/**
- * Special test suite with ignored tests.
- */
-public class IgniteIgnoredTestSuite extends TestSuite {
-    /**
-     * @return IgniteCache test suite.
-     * @throws Exception Thrown in case of the failure.
-     */
-    public static TestSuite suite() throws Exception {
-        IgniteTestSuite suite = new IgniteTestSuite("Ignite Ignored Test Suite");
-
-        suite.addTestSuite(SampleTestClass.class, true);
-
-        return suite;
-    }
-
-    /**
-     * Sample test class. To be removed once the very first really ignored test class is there.
-     */
-    public static class SampleTestClass extends GridCommonAbstractTest {
-        /**
-         * Test 1.
-         *
-         * @throws Exception If failed.
-         */
-        public void testMethod1() throws Exception {
-            System.out.println("Normal test method called.");
-        }
-
-        /**
-         * Test 2.
-         *
-         * @throws Exception If failed.
-         */
-        @IgniteIgnore
-        public void testMethod2() throws Exception {
-            System.out.println("Ignored method called.");
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/ignored-tests/README.txt
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/README.txt b/modules/ignored-tests/README.txt
new file mode 100644
index 0000000..70f728d
--- /dev/null
+++ b/modules/ignored-tests/README.txt
@@ -0,0 +1,4 @@
+Apache Ignite Ignored Tests
+------------------------
+
+Special module containing ignored and flaky tests grouped in a single test suite.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/ignored-tests/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/pom.xml b/modules/ignored-tests/pom.xml
new file mode 100644
index 0000000..a82a5bb
--- /dev/null
+++ b/modules/ignored-tests/pom.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  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.
+-->
+
+<!--
+    POM file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.ignite</groupId>
+        <artifactId>ignite-parent</artifactId>
+        <version>1</version>
+        <relativePath>../../parent</relativePath>
+    </parent>
+
+    <artifactId>ignite-ignored-tests</artifactId>
+    <version>1.7.0-SNAPSHOT</version>
+    <url>http://ignite.apache.org</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-core</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-log4j</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-spring</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-web</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-web</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-servlets</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-webapp</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
new file mode 100644
index 0000000..f6ce3e3
--- /dev/null
+++ b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
@@ -0,0 +1,50 @@
+/*
+ * 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.testsuites;
+
+import junit.framework.TestSuite;
+import org.apache.ignite.internal.websession.WebSessionReplicatedSelfTest;
+import org.apache.ignite.internal.websession.WebSessionReplicatedV1SelfTest;
+import org.apache.ignite.internal.websession.WebSessionSelfTest;
+import org.apache.ignite.internal.websession.WebSessionTransactionalSelfTest;
+import org.apache.ignite.internal.websession.WebSessionTransactionalV1SelfTest;
+import org.apache.ignite.internal.websession.WebSessionV1SelfTest;
+import org.apache.ignite.testframework.IgniteTestSuite;
+
+/**
+ * Special test suite with ignored tests.
+ */
+public class IgniteIgnoredTestSuite extends TestSuite {
+    /**
+     * @return IgniteCache test suite.
+     * @throws Exception Thrown in case of the failure.
+     */
+    public static TestSuite suite() throws Exception {
+        IgniteTestSuite suite = new IgniteTestSuite(null, "Ignite Ignored Test Suite", true);
+
+        /* --- WEB SESSIONS --- */
+        suite.addTestSuite(WebSessionSelfTest.class);
+        suite.addTestSuite(WebSessionTransactionalSelfTest.class);
+        suite.addTestSuite(WebSessionReplicatedSelfTest.class);
+        suite.addTestSuite(WebSessionV1SelfTest.class);
+        suite.addTestSuite(WebSessionTransactionalV1SelfTest.class);
+        suite.addTestSuite(WebSessionReplicatedV1SelfTest.class);
+
+        return suite;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/package-info.java
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/package-info.java b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/package-info.java
new file mode 100644
index 0000000..cb71478
--- /dev/null
+++ b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * 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 description. -->
+ * Contains internal tests or test related classes and interfaces.
+ */
+package org.apache.ignite.testsuites;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/IgniteWebSessionSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/IgniteWebSessionSelfTestSuite.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/IgniteWebSessionSelfTestSuite.java
index 1d15127..e1d5c3b 100644
--- a/modules/web/src/test/java/org/apache/ignite/internal/websession/IgniteWebSessionSelfTestSuite.java
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/IgniteWebSessionSelfTestSuite.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.websession;
 
 import junit.framework.TestSuite;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.IgniteTestSuite;
 
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_OVERRIDE_MCAST_GRP;
 
@@ -32,7 +33,7 @@ public class IgniteWebSessionSelfTestSuite extends TestSuite {
      * @throws Exception Thrown in case of the failure.
      */
     public static TestSuite suite() throws Exception {
-        TestSuite suite = new TestSuite("Ignite Web Sessions Test Suite");
+        TestSuite suite = new IgniteTestSuite("Ignite Web Sessions Test Suite");
 
         suite.addTestSuite(WebSessionSelfTest.class);
         suite.addTestSuite(WebSessionTransactionalSelfTest.class);
@@ -48,69 +49,4 @@ public class IgniteWebSessionSelfTestSuite extends TestSuite {
 
         return suite;
     }
-
-    /**
-     * Tests web sessions with TRANSACTIONAL cache.
-     */
-    public static class WebSessionTransactionalSelfTest extends WebSessionSelfTest {
-        /** {@inheritDoc} */
-        @Override protected String getCacheName() {
-            return "partitioned_tx";
-        }
-
-        /** {@inheritDoc} */
-        @Override public void testRestarts() throws Exception {
-            fail("https://issues.apache.org/jira/browse/IGNITE-810");
-        }
-
-        /** {@inheritDoc} */
-        @Override public void testInvalidatedSession() throws Exception {
-            fail("https://issues.apache.org/jira/browse/IGNITE-810");
-        }
-
-        /** {@inheritDoc} */
-        @Override public void testClientReconnectRequest() throws Exception {
-            fail("https://issues.apache.org/jira/browse/IGNITE-810");
-        }
-    }
-
-    /**
-     * Tests web sessions with REPLICATED cache.
-     */
-    public static class WebSessionReplicatedSelfTest extends WebSessionSelfTest {
-        /** {@inheritDoc} */
-        @Override protected String getCacheName() {
-            return "replicated";
-        }
-    }
-
-    /**
-     * Old version test.
-     */
-    public static class WebSessionV1SelfTest extends WebSessionSelfTest {
-        /** {@inheritDoc} */
-        @Override protected boolean keepBinary() {
-            return false;
-        }
-    }
-
-    /**
-     * Tests web sessions with TRANSACTIONAL cache in compatibility mode.
-     */
-    public static class WebSessionTransactionalV1SelfTest extends WebSessionTransactionalSelfTest {
-        /** {@inheritDoc} */
-        @Override protected boolean keepBinary() {
-            return false;
-        }
-    }
-
-    /**
-     * Tests web sessions with REPLICATED cache in compatibility mode.
-     */
-    public static class WebSessionReplicatedV1SelfTest extends WebSessionReplicatedSelfTest {
-        /** {@inheritDoc} */
-        @Override protected boolean keepBinary() {
-            return false;
-        }
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedSelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedSelfTest.java
new file mode 100644
index 0000000..638fdcc
--- /dev/null
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedSelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.websession;
+
+/**
+ * Tests web sessions with REPLICATED cache.
+ */
+public class WebSessionReplicatedSelfTest extends WebSessionSelfTest {
+    /** {@inheritDoc} */
+    @Override protected String getCacheName() {
+        return "replicated";
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedV1SelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedV1SelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedV1SelfTest.java
new file mode 100644
index 0000000..ba69d13
--- /dev/null
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionReplicatedV1SelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.websession;
+
+/**
+ * Tests web sessions with REPLICATED cache in compatibility mode.
+ */
+public class WebSessionReplicatedV1SelfTest extends WebSessionReplicatedSelfTest {
+    /** {@inheritDoc} */
+    @Override protected boolean keepBinary() {
+        return false;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
index 0ab1130..5138e3a 100644
--- a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionSelfTest.java
@@ -46,6 +46,7 @@ import org.apache.ignite.marshaller.Marshaller;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.eclipse.jetty.security.HashLoginService;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.servlet.ServletHolder;
@@ -88,6 +89,7 @@ public class WebSessionSelfTest extends GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-3663")
     public void testSessionRenewalDuringLogin() throws Exception {
         testSessionRenewalDuringLogin("/modules/core/src/test/config/websession/example-cache.xml");
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalSelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalSelfTest.java
new file mode 100644
index 0000000..4cc1a63
--- /dev/null
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalSelfTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.websession;
+
+import org.apache.ignite.testsuites.IgniteIgnore;
+
+/**
+ * Tests web sessions with TRANSACTIONAL cache.
+ */
+public class WebSessionTransactionalSelfTest extends WebSessionSelfTest {
+    /** {@inheritDoc} */
+    @Override protected String getCacheName() {
+        return "partitioned_tx";
+    }
+
+    /** {@inheritDoc} */
+    @IgniteIgnore(value = "https://issues.apache.org/jira/browse/IGNITE-810", forceFailure = true)
+    @Override public void testRestarts() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @IgniteIgnore(value = "https://issues.apache.org/jira/browse/IGNITE-810", forceFailure = true)
+    @Override public void testInvalidatedSession() throws Exception {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @IgniteIgnore(value = "https://issues.apache.org/jira/browse/IGNITE-810", forceFailure = true)
+    @Override public void testClientReconnectRequest() throws Exception {
+        // No-op.
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalV1SelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalV1SelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalV1SelfTest.java
new file mode 100644
index 0000000..6f94471
--- /dev/null
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionTransactionalV1SelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.websession;
+
+/**
+ * Tests web sessions with TRANSACTIONAL cache in compatibility mode.
+ */
+public class WebSessionTransactionalV1SelfTest extends WebSessionTransactionalSelfTest {
+    /** {@inheritDoc} */
+    @Override protected boolean keepBinary() {
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionV1SelfTest.java
----------------------------------------------------------------------
diff --git a/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionV1SelfTest.java b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionV1SelfTest.java
new file mode 100644
index 0000000..791bec0
--- /dev/null
+++ b/modules/web/src/test/java/org/apache/ignite/internal/websession/WebSessionV1SelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.websession;
+
+/**
+ * Tests the correctness of web sessions caching functionality in compatibility mode.
+ */
+public class WebSessionV1SelfTest extends WebSessionSelfTest {
+    /** {@inheritDoc} */
+    @Override protected boolean keepBinary() {
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5cffd3c3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2c7bad1..36051b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -496,6 +496,13 @@
         </profile>
 
         <profile>
+            <id>ignored-tests</id>
+            <modules>
+                <module>modules/ignored-tests</module>
+            </modules>
+        </profile>
+
+        <profile>
             <id>examples</id>
             <modules>
                 <module>examples</module>


[3/9] ignite git commit: ignite-3973 In TcpDiscoveryMulticastIpFinder.requestAddresses wait full timeout for remote addresses

Posted by sb...@apache.org.
ignite-3973 In TcpDiscoveryMulticastIpFinder.requestAddresses wait full timeout for remote addresses


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c8dc92ec
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c8dc92ec
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c8dc92ec

Branch: refs/heads/ignite-3601p
Commit: c8dc92ecc8a5d76e68d2d75f12158e0a581a0326
Parents: c2a3f11
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 27 15:17:05 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 27 15:17:05 2016 +0300

----------------------------------------------------------------------
 .../tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java  | 3 ---
 .../spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java  | 2 +-
 .../apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java  | 2 +-
 .../multicast/TcpDiscoveryMulticastIpFinderSelfTest.java       | 6 +++---
 4 files changed, 5 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c8dc92ec/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
index d5b3dae..5bbe90e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
@@ -618,9 +618,6 @@ public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
                     U.close(sock);
                 }
 
-                if (rmtAddrs.size() > locNodeAddrs.size())
-                    break;
-
                 if (i < addrReqAttempts - 1) // Wait some time before re-sending address request.
                     U.sleep(200);
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c8dc92ec/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java
index 27ce883..ba8fe73 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiMulticastTest.java
@@ -58,7 +58,7 @@ public class TcpClientDiscoverySpiMulticastTest extends GridCommonAbstractTest {
 
         TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
 
-        ipFinder.setAddressRequestAttempts(10);
+        ipFinder.setAddressRequestAttempts(5);
 
         spi.setIpFinder(ipFinder);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c8dc92ec/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
index 035c6fe..1ce98a5 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
@@ -181,7 +181,7 @@ public class TcpDiscoverySelfTest extends GridCommonAbstractTest {
         else if (gridName.contains("MulticastIpFinder")) {
             TcpDiscoveryMulticastIpFinder finder = new TcpDiscoveryMulticastIpFinder();
 
-            finder.setAddressRequestAttempts(10);
+            finder.setAddressRequestAttempts(5);
             finder.setMulticastGroup(GridTestUtils.getNextMulticastGroup(getClass()));
             finder.setMulticastPort(GridTestUtils.getNextMulticastPort(getClass()));
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c8dc92ec/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinderSelfTest.java
index 90fdb0a..29ed595 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinderSelfTest.java
@@ -59,19 +59,19 @@ public class TcpDiscoveryMulticastIpFinderSelfTest
         try {
             ipFinder1 = ipFinder();
             ipFinder1.setResponseWaitTime(1000);
-            ipFinder1.setAddressRequestAttempts(10);
+            ipFinder1.setAddressRequestAttempts(5);
 
             ipFinder2 = new TcpDiscoveryMulticastIpFinder();
 
             ipFinder2.setResponseWaitTime(1000);
-            ipFinder2.setAddressRequestAttempts(10);
+            ipFinder2.setAddressRequestAttempts(5);
             ipFinder2.setMulticastGroup(ipFinder1.getMulticastGroup());
             ipFinder2.setMulticastPort(ipFinder1.getMulticastPort());
 
             ipFinder3 = new TcpDiscoveryMulticastIpFinder();
 
             ipFinder3.setResponseWaitTime(1000);
-            ipFinder3.setAddressRequestAttempts(10);
+            ipFinder3.setAddressRequestAttempts(5);
             ipFinder3.setMulticastGroup(ipFinder1.getMulticastGroup());
             ipFinder3.setMulticastPort(ipFinder1.getMulticastPort());
 


[6/9] ignite git commit: IGNITE-3978: Applied "IgniteIgnore" annotation to failing S3 tests. This closes #1123.

Posted by sb...@apache.org.
IGNITE-3978: Applied "IgniteIgnore" annotation to failing S3 tests. This closes #1123.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7f8281cd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7f8281cd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7f8281cd

Branch: refs/heads/ignite-3601p
Commit: 7f8281cd191ea576a8d6358b53fb13e4344cb9d5
Parents: 5cffd3c
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Sep 27 16:37:40 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Sep 27 16:37:40 2016 +0300

----------------------------------------------------------------------
 .../s3/S3CheckpointManagerSelfTest.java         |  3 ++
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |  4 ++
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |  7 ++++
 .../s3/S3SessionCheckpointSelfTest.java         |  2 +
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |  7 ++++
 .../ignite/testsuites/IgniteS3TestSuite.java    | 15 +++----
 .../ignite/testframework/IgniteTestSuite.java   | 41 ++++++++++++++++++--
 modules/ignored-tests/pom.xml                   | 14 +++++++
 .../testsuites/IgniteIgnoredTestSuite.java      | 21 ++++------
 9 files changed, 90 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
index db09e33..a90323e 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointManagerSelfTest.java
@@ -21,6 +21,7 @@ import com.amazonaws.auth.AWSCredentials;
 import com.amazonaws.auth.BasicAWSCredentials;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManagerAbstractSelfTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.apache.ignite.testsuites.IgniteS3TestSuite;
 
 /**
@@ -50,6 +51,7 @@ public class S3CheckpointManagerSelfTest extends GridCheckpointManagerAbstractSe
     /**
      * @throws Exception Thrown if any exception occurs.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testS3Based() throws Exception {
         retries = 6;
 
@@ -59,6 +61,7 @@ public class S3CheckpointManagerSelfTest extends GridCheckpointManagerAbstractSe
     /**
      * @throws Exception Thrown if any exception occurs.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testMultiNodeS3Based() throws Exception {
         retries = 6;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
index 11e5bad..23abe06 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiSelfTest.java
@@ -34,6 +34,7 @@ import org.apache.ignite.spi.checkpoint.GridCheckpointTestState;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.spi.GridSpiAbstractTest;
 import org.apache.ignite.testframework.junits.spi.GridSpiTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.apache.ignite.testsuites.IgniteS3TestSuite;
 
 /**
@@ -91,6 +92,7 @@ public class S3CheckpointSpiSelfTest extends GridSpiAbstractTest<S3CheckpointSpi
     /**
      * @throws Exception Thrown in case of any errors.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testSaveLoadRemoveWithoutExpire() throws Exception {
         String dataPrefix = "Test check point data ";
 
@@ -149,6 +151,7 @@ public class S3CheckpointSpiSelfTest extends GridSpiAbstractTest<S3CheckpointSpi
     /**
      * @throws Exception Thrown in case of any errors.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testSaveWithExpire() throws Exception {
         // Save states.
         for (int i = 0; i < CHECK_POINT_COUNT; i++) {
@@ -176,6 +179,7 @@ public class S3CheckpointSpiSelfTest extends GridSpiAbstractTest<S3CheckpointSpi
     /**
      * @throws Exception Thrown in case of any errors.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testDuplicates() throws Exception {
         int idx1 = 1;
         int idx2 = 2;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
index 3995b09..c26897f 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpiStartStopSelfTest.java
@@ -21,6 +21,7 @@ import com.amazonaws.auth.AWSCredentials;
 import com.amazonaws.auth.BasicAWSCredentials;
 import org.apache.ignite.spi.GridSpiStartStopAbstractTest;
 import org.apache.ignite.testframework.junits.spi.GridSpiTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.apache.ignite.testsuites.IgniteS3TestSuite;
 
 /**
@@ -39,4 +40,10 @@ public class S3CheckpointSpiStartStopSelfTest extends GridSpiStartStopAbstractTe
 
         super.spiConfigure(spi);
     }
+
+    /** {@inheritDoc} */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
+    @Override public void testStartStop() throws Exception {
+        super.testStartStop();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
index e5dd074..c1290a4 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/checkpoint/s3/S3SessionCheckpointSelfTest.java
@@ -22,6 +22,7 @@ import com.amazonaws.auth.BasicAWSCredentials;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.session.GridSessionCheckpointAbstractSelfTest;
 import org.apache.ignite.session.GridSessionCheckpointSelfTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.apache.ignite.testsuites.IgniteS3TestSuite;
 
 /**
@@ -31,6 +32,7 @@ public class S3SessionCheckpointSelfTest extends GridSessionCheckpointAbstractSe
     /**
      * @throws Exception If failed.
      */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
     public void testS3Checkpoint() throws Exception {
         IgniteConfiguration cfg = getConfiguration();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
index 73e8e55..a1ebc8f 100644
--- a/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
+++ b/modules/aws/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/s3/TcpDiscoveryS3IpFinderSelfTest.java
@@ -23,6 +23,7 @@ import java.net.InetSocketAddress;
 import java.util.Collection;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAbstractSelfTest;
+import org.apache.ignite.testsuites.IgniteIgnore;
 import org.apache.ignite.testsuites.IgniteS3TestSuite;
 
 /**
@@ -69,4 +70,10 @@ public class TcpDiscoveryS3IpFinderSelfTest
 
         return finder;
     }
+
+    /** {@inheritDoc} */
+    @IgniteIgnore("https://issues.apache.org/jira/browse/IGNITE-2420")
+    @Override public void testIpFinder() throws Exception {
+        super.testIpFinder();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/aws/src/test/java/org/apache/ignite/testsuites/IgniteS3TestSuite.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/test/java/org/apache/ignite/testsuites/IgniteS3TestSuite.java b/modules/aws/src/test/java/org/apache/ignite/testsuites/IgniteS3TestSuite.java
index 5c4ba97..86322e6 100644
--- a/modules/aws/src/test/java/org/apache/ignite/testsuites/IgniteS3TestSuite.java
+++ b/modules/aws/src/test/java/org/apache/ignite/testsuites/IgniteS3TestSuite.java
@@ -24,6 +24,7 @@ import org.apache.ignite.spi.checkpoint.s3.S3CheckpointSpiSelfTest;
 import org.apache.ignite.spi.checkpoint.s3.S3CheckpointSpiStartStopSelfTest;
 import org.apache.ignite.spi.checkpoint.s3.S3SessionCheckpointSelfTest;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.s3.TcpDiscoveryS3IpFinderSelfTest;
+import org.apache.ignite.testframework.IgniteTestSuite;
 
 /**
  * S3 integration tests.
@@ -34,17 +35,17 @@ public class IgniteS3TestSuite extends TestSuite {
      * @throws Exception Thrown in case of the failure.
      */
     public static TestSuite suite() throws Exception {
-        TestSuite suite = new TestSuite("S3 Integration Test Suite");
+        TestSuite suite = new IgniteTestSuite("S3 Integration Test Suite");
 
         // Checkpoint SPI.
-        suite.addTest(new TestSuite(S3CheckpointSpiConfigSelfTest.class));
-        suite.addTest(new TestSuite(S3CheckpointSpiSelfTest.class));
-        suite.addTest(new TestSuite(S3CheckpointSpiStartStopSelfTest.class));
-        suite.addTest(new TestSuite(S3CheckpointManagerSelfTest.class));
-        suite.addTest(new TestSuite(S3SessionCheckpointSelfTest.class));
+        suite.addTestSuite(S3CheckpointSpiConfigSelfTest.class);
+        suite.addTestSuite(S3CheckpointSpiSelfTest.class);
+        suite.addTestSuite(S3CheckpointSpiStartStopSelfTest.class);
+        suite.addTestSuite(S3CheckpointManagerSelfTest.class);
+        suite.addTestSuite(S3SessionCheckpointSelfTest.class);
 
         // S3 IP finder.
-        suite.addTest(new TestSuite(TcpDiscoveryS3IpFinderSelfTest.class));
+        suite.addTestSuite(TcpDiscoveryS3IpFinderSelfTest.class);
 
         return suite;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
index 4153600..6fc7917 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
@@ -36,8 +36,15 @@ import java.util.List;
  * Test methods marked with @Ignored annotation won't be executed.
  */
 public class IgniteTestSuite extends TestSuite {
+    /** Ignore default flag thread local. */
+    private static final ThreadLocal<Boolean> IGNORE_DFLT = new ThreadLocal<Boolean>() {
+        @Override protected Boolean initialValue() {
+            return false;
+        }
+    };
+
     /** Whether to execute only ignored tests. */
-    private final boolean ignoredOnly;
+    private boolean ignoredOnly;
 
     /**
      * Constructor.
@@ -54,7 +61,7 @@ public class IgniteTestSuite extends TestSuite {
      * @param theClass TestCase class
      */
     public IgniteTestSuite(Class<? extends TestCase> theClass) {
-        this(theClass, false);
+        this(theClass, ignoreDefault());
     }
 
     /**
@@ -74,7 +81,7 @@ public class IgniteTestSuite extends TestSuite {
      * @param name Test suite name.
      */
     public IgniteTestSuite(Class<? extends TestCase> theClass, String name) {
-        this(theClass, name, false);
+        this(theClass, name, ignoreDefault());
     }
 
     /**
@@ -94,6 +101,13 @@ public class IgniteTestSuite extends TestSuite {
             setName(name);
     }
 
+    /**
+     * Adds a test to the suite.
+     */
+    @Override public void addTest(Test test) {
+        super.addTest(test);
+    }
+
     /** {@inheritDoc} */
     @Override public void addTestSuite(Class<? extends TestCase> testClass) {
         addTest(new IgniteTestSuite(testClass, ignoredOnly));
@@ -122,6 +136,7 @@ public class IgniteTestSuite extends TestSuite {
             Class superCls = theClass;
 
             int testAdded = 0;
+            int testIgnored = 0;
 
             for(List<String> names = new ArrayList<>(); Test.class.isAssignableFrom(superCls);
                 superCls = superCls.getSuperclass()) {
@@ -131,10 +146,12 @@ public class IgniteTestSuite extends TestSuite {
                 for (Method each : methods) {
                     if (addTestMethod(each, names, theClass))
                         testAdded++;
+                    else
+                        testIgnored++;
                 }
             }
 
-            if(testAdded == 0)
+            if(testAdded == 0 && testIgnored == 0)
                 addTest(warning("No tests found in " + theClass.getName()));
         }
     }
@@ -222,6 +239,22 @@ public class IgniteTestSuite extends TestSuite {
     }
 
     /**
+     * @param val Default value of ignore flag.
+     */
+    public static void ignoreDefault(boolean val) {
+        IGNORE_DFLT.set(val);
+    }
+
+    /**
+     * @return Default value of ignore flag.
+     */
+    private static boolean ignoreDefault() {
+        Boolean res = IGNORE_DFLT.get();
+
+        return res != null && res;
+    }
+
+    /**
      * Test case simulating failure.
      */
     private static class ForcedFailure extends TestCase {

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/ignored-tests/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/pom.xml b/modules/ignored-tests/pom.xml
index a82a5bb..cfeacb2 100644
--- a/modules/ignored-tests/pom.xml
+++ b/modules/ignored-tests/pom.xml
@@ -64,6 +64,20 @@
 
         <dependency>
             <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-aws</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-aws</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
             <artifactId>ignite-web</artifactId>
             <version>${project.version}</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/ignite/blob/7f8281cd/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
index f6ce3e3..fa60721 100644
--- a/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
+++ b/modules/ignored-tests/src/test/java/org/apache/ignite/testsuites/IgniteIgnoredTestSuite.java
@@ -18,12 +18,7 @@
 package org.apache.ignite.testsuites;
 
 import junit.framework.TestSuite;
-import org.apache.ignite.internal.websession.WebSessionReplicatedSelfTest;
-import org.apache.ignite.internal.websession.WebSessionReplicatedV1SelfTest;
-import org.apache.ignite.internal.websession.WebSessionSelfTest;
-import org.apache.ignite.internal.websession.WebSessionTransactionalSelfTest;
-import org.apache.ignite.internal.websession.WebSessionTransactionalV1SelfTest;
-import org.apache.ignite.internal.websession.WebSessionV1SelfTest;
+import org.apache.ignite.internal.websession.IgniteWebSessionSelfTestSuite;
 import org.apache.ignite.testframework.IgniteTestSuite;
 
 /**
@@ -35,15 +30,15 @@ public class IgniteIgnoredTestSuite extends TestSuite {
      * @throws Exception Thrown in case of the failure.
      */
     public static TestSuite suite() throws Exception {
-        IgniteTestSuite suite = new IgniteTestSuite(null, "Ignite Ignored Test Suite", true);
+        IgniteTestSuite.ignoreDefault(true);
+
+        IgniteTestSuite suite = new IgniteTestSuite(null, "Ignite Ignored Test Suite");
+
+        /* --- AWS --- */
+        suite.addTest(IgniteS3TestSuite.suite());
 
         /* --- WEB SESSIONS --- */
-        suite.addTestSuite(WebSessionSelfTest.class);
-        suite.addTestSuite(WebSessionTransactionalSelfTest.class);
-        suite.addTestSuite(WebSessionReplicatedSelfTest.class);
-        suite.addTestSuite(WebSessionV1SelfTest.class);
-        suite.addTestSuite(WebSessionTransactionalV1SelfTest.class);
-        suite.addTestSuite(WebSessionReplicatedV1SelfTest.class);
+        suite.addTest(IgniteWebSessionSelfTestSuite.suite());
 
         return suite;
     }


[5/9] ignite git commit: ignite-3967 Do not use GridBoundedConcurrentOrderedMap.clear

Posted by sb...@apache.org.
ignite-3967 Do not use GridBoundedConcurrentOrderedMap.clear


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8ba2b947
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8ba2b947
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8ba2b947

Branch: refs/heads/ignite-3601p
Commit: 8ba2b947895cabdddb8633a39063c8739c18ad1b
Parents: 82b44fe
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 27 16:07:52 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 27 16:07:52 2016 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    |  2 +-
 .../discovery/GridDiscoveryManager.java         | 73 ++++++++++----------
 .../util/GridBoundedConcurrentOrderedMap.java   |  5 ++
 .../IgniteClientReconnectCacheTest.java         | 35 ++++++++++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |  4 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |  6 +-
 6 files changed, 85 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 6c5a628..e0a36a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -1126,7 +1126,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
         ackStart(rtBean);
 
         if (!isDaemon())
-            ctx.discovery().ackTopology();
+            ctx.discovery().ackTopology(localNode().order());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index bbf3ebd..345cfb4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -42,7 +42,6 @@ import java.util.UUID;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ConcurrentNavigableMap;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CountDownLatch;
@@ -81,7 +80,7 @@ import org.apache.ignite.internal.processors.security.SecurityContext;
 import org.apache.ignite.internal.processors.service.GridServiceProcessor;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 import org.apache.ignite.internal.util.F0;
-import org.apache.ignite.internal.util.GridBoundedConcurrentOrderedMap;
+import org.apache.ignite.internal.util.GridBoundedConcurrentLinkedHashMap;
 import org.apache.ignite.internal.util.GridSpinBusyLock;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -113,15 +112,16 @@ import org.apache.ignite.spi.discovery.DiscoverySpiHistorySupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator;
 import org.apache.ignite.spi.discovery.DiscoverySpiOrderSupport;
-import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
 import org.apache.ignite.thread.IgniteThread;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.ConcurrentHashMap8;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static org.apache.ignite.IgniteSystemProperties.IGNITE_BINARY_MARSHALLER_USE_STRING_SERIALIZATION_VER_2;
+import static org.apache.ignite.IgniteSystemProperties.IGNITE_DISCOVERY_HISTORY_SIZE;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_OPTIMIZED_MARSHALLER_USE_DEFAULT_SUID;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_SERVICES_COMPATIBILITY_MODE;
-import static org.apache.ignite.IgniteSystemProperties.IGNITE_BINARY_MARSHALLER_USE_STRING_SERIALIZATION_VER_2;
+import static org.apache.ignite.IgniteSystemProperties.getInteger;
 import static org.apache.ignite.events.EventType.EVT_CLIENT_NODE_DISCONNECTED;
 import static org.apache.ignite.events.EventType.EVT_CLIENT_NODE_RECONNECTED;
 import static org.apache.ignite.events.EventType.EVT_NODE_FAILED;
@@ -169,7 +169,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
     private static final String PREFIX = "Topology snapshot";
 
     /** Discovery cached history size. */
-    protected static final int DISCOVERY_HISTORY_SIZE = 100;
+    static final int DISCOVERY_HISTORY_SIZE = getInteger(IGNITE_DISCOVERY_HISTORY_SIZE, 500);
 
     /** Predicate filtering out daemon nodes. */
     private static final IgnitePredicate<ClusterNode> FILTER_DAEMON = new P1<ClusterNode>() {
@@ -210,8 +210,8 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
     private final AtomicBoolean lastSegChkRes = new AtomicBoolean(true);
 
     /** Topology cache history. */
-    private final ConcurrentNavigableMap<AffinityTopologyVersion, DiscoCache> discoCacheHist =
-        new GridBoundedConcurrentOrderedMap<>(DISCOVERY_HISTORY_SIZE);
+    private final GridBoundedConcurrentLinkedHashMap<AffinityTopologyVersion, DiscoCache> discoCacheHist =
+        new GridBoundedConcurrentLinkedHashMap<>(DISCOVERY_HISTORY_SIZE);
 
     /** Topology snapshots history. */
     private volatile Map<Long, Collection<ClusterNode>> topHist = new HashMap<>();
@@ -599,7 +599,11 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
 
                     registeredCaches.clear();
 
-                    discoCacheHist.clear();
+                    for (AffinityTopologyVersion histVer : discoCacheHist.keySet()) {
+                        Object rmvd = discoCacheHist.remove(histVer);
+
+                        assert rmvd != null : histVer;
+                    }
 
                     topHist.clear();
 
@@ -1199,9 +1203,11 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
 
     /**
      * Prints the latest topology info into log taking into account logging/verbosity settings.
+     *
+     * @param topVer Topology version.
      */
-    public void ackTopology() {
-        ackTopology(topSnap.get().topVer.topologyVersion(), false);
+    public void ackTopology(long topVer) {
+        ackTopology(topVer, false);
     }
 
     /**
@@ -1213,7 +1219,22 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
     private void ackTopology(long topVer, boolean throttle) {
         assert !isLocDaemon;
 
-        DiscoCache discoCache = discoCache();
+        DiscoCache discoCache = discoCacheHist.get(new AffinityTopologyVersion(topVer));
+
+        if (discoCache == null) {
+            String msg = "Failed to resolve nodes topology [topVer=" + topVer +
+                ", hist=" + discoCacheHist.keySet() + ']';
+
+            if (log.isQuiet())
+                U.quiet(false, msg);
+
+            if (log.isDebugEnabled())
+                log.debug(msg);
+            else if (log.isInfoEnabled())
+                log.info(msg);
+
+            return;
+        }
 
         Collection<ClusterNode> rmtNodes = discoCache.remoteNodes();
 
@@ -1237,7 +1258,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
         double heap = U.heapSize(allNodes, 2);
 
         if (log.isQuiet())
-            U.quiet(false, topologySnapshotMessage(srvNodes.size(), clientNodes.size(), totalCpus, heap));
+            U.quiet(false, topologySnapshotMessage(topVer, srvNodes.size(), clientNodes.size(), totalCpus, heap));
 
         if (log.isDebugEnabled()) {
             String dbg = "";
@@ -1281,19 +1302,20 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
             log.debug(dbg);
         }
         else if (log.isInfoEnabled())
-            log.info(topologySnapshotMessage(srvNodes.size(), clientNodes.size(), totalCpus, heap));
+            log.info(topologySnapshotMessage(topVer, srvNodes.size(), clientNodes.size(), totalCpus, heap));
     }
 
     /**
+     * @param topVer Topology version.
      * @param srvNodesNum Server nodes number.
      * @param clientNodesNum Client nodes number.
      * @param totalCpus Total cpu number.
      * @param heap Heap size.
      * @return Topology snapshot message.
      */
-    private String topologySnapshotMessage(int srvNodesNum, int clientNodesNum, int totalCpus, double heap) {
+    private String topologySnapshotMessage(long topVer, int srvNodesNum, int clientNodesNum, int totalCpus, double heap) {
         return PREFIX + " [" +
-            (discoOrdered ? "ver=" + topSnap.get().topVer.topologyVersion() + ", " : "") +
+            (discoOrdered ? "ver=" + topVer + ", " : "") +
             "servers=" + srvNodesNum +
             ", clients=" + clientNodesNum +
             ", CPUs=" + totalCpus +
@@ -1506,7 +1528,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
      *
      * @return Discovery collection cache.
      */
-    public DiscoCache discoCache() {
+    private DiscoCache discoCache() {
         Snapshot cur = topSnap.get();
 
         assert cur != null;
@@ -1533,15 +1555,6 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
         return discoCache().allNodes();
     }
 
-    /**
-     * Gets topology grouped by node versions.
-     *
-     * @return Version to collection of nodes map.
-     */
-    public NavigableMap<IgniteProductVersion, Collection<ClusterNode>> topologyVersionMap() {
-        return discoCache().versionsMap();
-    }
-
     /** @return Full topology size. */
     public int size() {
         return discoCache().allNodes().size();
@@ -1782,16 +1795,6 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
             snap.discoCache : discoCacheHist.get(topVer);
 
         if (cache == null) {
-            // Find the eldest acceptable discovery cache.
-            Map.Entry<AffinityTopologyVersion, DiscoCache> eldest = discoCacheHist.firstEntry();
-
-            if (eldest != null) {
-                if (topVer.compareTo(eldest.getKey()) < 0)
-                    cache = eldest.getValue();
-            }
-        }
-
-        if (cache == null) {
             throw new IgniteException("Failed to resolve nodes topology [cacheName=" + cacheName +
                 ", topVer=" + topVer +
                 ", history=" + discoCacheHist.keySet() +

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/modules/core/src/main/java/org/apache/ignite/internal/util/GridBoundedConcurrentOrderedMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridBoundedConcurrentOrderedMap.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridBoundedConcurrentOrderedMap.java
index 3f6db30..33b2e60 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridBoundedConcurrentOrderedMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridBoundedConcurrentOrderedMap.java
@@ -236,4 +236,9 @@ public class GridBoundedConcurrentOrderedMap<K, V> extends ConcurrentSkipListMap
 
         return rmvd;
     }
+
+    /** {@inheritDoc} */
+    @Override public void clear() {
+        throw new UnsupportedOperationException();
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
index ad6c46f..0f0165b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java
@@ -27,6 +27,7 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import javax.cache.CacheException;
 import junit.framework.AssertionFailedError;
@@ -1084,6 +1085,21 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
      * @throws Exception If failed.
      */
     public void testReconnectMultinode() throws Exception {
+        reconnectMultinode(false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testReconnectMultinodeLongHistory() throws Exception {
+        reconnectMultinode(true);
+    }
+
+    /**
+     * @param longHist If {@code true} generates many discovery events to overflow events history.
+     * @throws Exception If failed.
+     */
+    private void reconnectMultinode(boolean longHist) throws Exception {
         grid(0).createCache(new CacheConfiguration<>());
 
         clientMode = true;
@@ -1100,6 +1116,25 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac
             clients.add(client);
         }
 
+        if (longHist) {
+            // Generate many discovery events to overflow discovery events history.
+            final AtomicInteger nodeIdx = new AtomicInteger(SRV_CNT + CLIENTS);
+
+            GridTestUtils.runMultiThreaded(new Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    int idx = nodeIdx.incrementAndGet();
+
+                    for (int i  = 0; i < 25; i++) {
+                        startGrid(idx);
+
+                        stopGrid(idx);
+                    }
+
+                    return null;
+                }
+            }, 4, "restart-thread");
+        }
+
         int nodes = SRV_CNT + CLIENTS;
         int srvNodes = SRV_CNT;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/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 50bcc41..390c83e 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
@@ -219,7 +219,9 @@ public class GridDiscoveryManagerAliveCacheSelfTest extends GridCommonAbstractTe
 
             long currVer = discoMgr.topologyVersion();
 
-            for (long v = currVer; v > currVer - GridDiscoveryManager.DISCOVERY_HISTORY_SIZE && v > 0; v--) {
+            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) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ba2b947/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
index 7912ee1..c9179d4 100644
--- 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
@@ -88,15 +88,15 @@ public abstract class GridDiscoveryManagerSelfTest extends GridCommonAbstractTes
     public void testHasNearCache() throws Exception {
         IgniteKernal g0 = (IgniteKernal)startGrid(0); // PARTITIONED_ONLY cache.
 
-        AffinityTopologyVersion zero = new AffinityTopologyVersion(0);
+        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, zero));
-        assertFalse(g0.context().discovery().hasNearCache(null, zero));
+        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));


[8/9] ignite git commit: Merge remote-tracking branch 'remotes/community/ignite-1.6.9' into ignite-3601p

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-1.6.9' into ignite-3601p


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8f924204
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8f924204
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8f924204

Branch: refs/heads/ignite-3601p
Commit: 8f92420407df0557087b047845f1cafe48653b4b
Parents: 0c64a78 8127667
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 27 18:14:18 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 27 18:14:18 2016 +0300

----------------------------------------------------------------------
 .../s3/S3CheckpointManagerSelfTest.java         |   3 +
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |   4 +
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |   7 +
 .../s3/S3SessionCheckpointSelfTest.java         |   2 +
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |   7 +
 .../ignite/testsuites/IgniteS3TestSuite.java    |  15 +-
 .../local/LocalIgfsSecondaryFileSystem.java     |  19 +--
 .../apache/ignite/internal/IgniteKernal.java    |   2 +-
 .../discovery/GridDiscoveryManager.java         |  73 +++++----
 .../util/GridBoundedConcurrentOrderedMap.java   |   5 +
 .../TcpDiscoveryMulticastIpFinder.java          |   3 -
 .../IgniteClientReconnectCacheTest.java         |  35 ++++
 .../GridDiscoveryManagerAliveCacheSelfTest.java |   4 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |   6 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |   2 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |   2 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |   6 +-
 .../ignite/testframework/IgniteTestSuite.java   | 163 +++++++++++++++----
 .../testframework/junits/GridAbstractTest.java  |  22 ++-
 .../apache/ignite/testsuites/IgniteIgnore.java  |  11 +-
 .../testsuites/IgniteIgnoredTestSuite.java      |  63 -------
 modules/ignored-tests/README.txt                |   4 +
 modules/ignored-tests/pom.xml                   | 107 ++++++++++++
 .../testsuites/IgniteIgnoredTestSuite.java      |  45 +++++
 .../apache/ignite/testsuites/package-info.java  |  22 +++
 .../IgniteWebSessionSelfTestSuite.java          |  68 +-------
 .../WebSessionReplicatedSelfTest.java           |  28 ++++
 .../WebSessionReplicatedV1SelfTest.java         |  28 ++++
 .../internal/websession/WebSessionSelfTest.java |   2 +
 .../WebSessionTransactionalSelfTest.java        |  48 ++++++
 .../WebSessionTransactionalV1SelfTest.java      |  28 ++++
 .../websession/WebSessionV1SelfTest.java        |  28 ++++
 pom.xml                                         |   7 +
 33 files changed, 633 insertions(+), 236 deletions(-)
----------------------------------------------------------------------