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

[1/5] ignite git commit: review IGNITE-2708 Need to validate that SPIs are started only once (cherry picked from commit cd063da)

Repository: ignite
Updated Branches:
  refs/heads/master 271f9eea4 -> 8c578aaa2


review IGNITE-2708 Need to validate that SPIs are started only once
(cherry picked from commit cd063da)


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

Branch: refs/heads/master
Commit: 6687e2bfb9627ce08c1c258527e2927606a500ed
Parents: e274d44
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri May 13 11:48:00 2016 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri May 27 14:34:56 2016 +0300

----------------------------------------------------------------------
 .../internal/managers/GridManagerAdapter.java   |  5 +++-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java | 29 ++++++++++++++++++--
 .../ignite/internal/GridFactorySelfTest.java    | 27 +++++++++++++++++-
 3 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6687e2bf/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index 0318b12..1a0d60f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -209,6 +209,9 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
         Collection<String> names = U.newHashSet(spis.length);
 
         for (T spi : spis) {
+            if (spi instanceof IgniteSpiAdapter)
+                ((IgniteSpiAdapter)spi).onBeforeStart();
+
             // Inject all spi resources.
             ctx.resource().inject(spi);
 
@@ -629,4 +632,4 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
     @Override public final String toString() {
         return S.toString(GridManagerAdapter.class, this, "name", getClass().getName());
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/6687e2bf/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
index f31aae7..65b0420 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
@@ -25,6 +25,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -39,7 +40,6 @@ import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.managers.communication.GridMessageListener;
 import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
-import org.apache.ignite.internal.processors.cache.GridCacheUtils;
 import org.apache.ignite.internal.processors.timeout.GridSpiTimeoutObject;
 import org.apache.ignite.internal.util.IgniteExceptionRegistry;
 import org.apache.ignite.internal.util.typedef.F;
@@ -97,11 +97,14 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
     private boolean failureDetectionTimeoutEnabled = true;
 
     /**
-     *  Failure detection timeout. Initialized with the value of
-     *  {@link IgniteConfiguration#getFailureDetectionTimeout()}.
+     * Failure detection timeout. Initialized with the value of
+     * {@link IgniteConfiguration#getFailureDetectionTimeout()}.
      */
     private long failureDetectionTimeout;
 
+    /** Start flag to deny repeating start attempts. */
+    private final AtomicBoolean startedFlag = new AtomicBoolean();
+
     /**
      * Creates new adapter and initializes it from the current (this) class.
      * SPI name will be initialized to the simple name of the class
@@ -118,6 +121,26 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
         startTstamp = U.currentTimeMillis();
     }
 
+    /**
+     * This method is called by built-in managers implementation to avoid
+     * repeating SPI start attempts.
+     */
+    public final void onBeforeStart() {
+        if (!startedFlag.compareAndSet(false, true))
+            throw new IllegalStateException("SPI has already been started " +
+                "(always create new configuration instance for each starting Ignite instances) " +
+                "[spi=" + this + ']');
+    }
+
+    /**
+     * Checks if {@link #onBeforeStart()} has been called on this SPI instance.
+     *
+     * @return {@code True} if {@link #onBeforeStart()} has already been called.
+     */
+    public final boolean started() {
+        return startedFlag.get();
+    }
+
     /** {@inheritDoc} */
     @Override public final String getStartTimestampFormatted() {
         return DateFormat.getDateTimeInstance().format(new Date(startTstamp));

http://git-wip-us.apache.org/repos/asf/ignite/blob/6687e2bf/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
index 0868dff..e1db958 100644
--- a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
+++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
@@ -987,6 +987,31 @@ public class GridFactorySelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    public void testRepeatingStart() throws Exception {
+        try {
+            IgniteConfiguration c = getConfiguration("1");
+
+            startGrid("1", c);
+
+            assert ((TcpDiscoverySpi)c.getDiscoverySpi()).started();
+
+            try {
+                startGrid("2", c);
+
+                fail("Should not be able to start grid using same configuration instance.");
+            }
+            catch (Exception e) {
+                info("Caught expected exception: " + e);
+            }
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
      * Test task.
      */
     private static class TestTask extends ComputeTaskSplitAdapter<Void, Void> {
@@ -1015,4 +1040,4 @@ public class GridFactorySelfTest extends GridCommonAbstractTest {
             return null;
         }
     }
-}
\ No newline at end of file
+}


[2/5] ignite git commit: reverting review IGNITE-2708 Need to validate that SPIs are started only once (cherry picked from commit bf561e1)

Posted by dm...@apache.org.
reverting review IGNITE-2708 Need to validate that SPIs are started only once
(cherry picked from commit bf561e1)


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

Branch: refs/heads/master
Commit: 40a41fc50bdb73d50e2aa13da8203784be98e38a
Parents: 6687e2b
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri May 13 11:59:02 2016 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri May 27 14:35:08 2016 +0300

----------------------------------------------------------------------
 .../internal/managers/GridManagerAdapter.java   |  3 --
 .../org/apache/ignite/spi/IgniteSpiAdapter.java | 29 ++------------------
 .../ignite/internal/GridFactorySelfTest.java    | 25 -----------------
 3 files changed, 3 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/40a41fc5/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index 1a0d60f..d8bd8e83 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -209,9 +209,6 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
         Collection<String> names = U.newHashSet(spis.length);
 
         for (T spi : spis) {
-            if (spi instanceof IgniteSpiAdapter)
-                ((IgniteSpiAdapter)spi).onBeforeStart();
-
             // Inject all spi resources.
             ctx.resource().inject(spi);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/40a41fc5/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
index 65b0420..f31aae7 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
@@ -25,7 +25,6 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-import java.util.concurrent.atomic.AtomicBoolean;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -40,6 +39,7 @@ import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.managers.communication.GridMessageListener;
 import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
+import org.apache.ignite.internal.processors.cache.GridCacheUtils;
 import org.apache.ignite.internal.processors.timeout.GridSpiTimeoutObject;
 import org.apache.ignite.internal.util.IgniteExceptionRegistry;
 import org.apache.ignite.internal.util.typedef.F;
@@ -97,14 +97,11 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
     private boolean failureDetectionTimeoutEnabled = true;
 
     /**
-     * Failure detection timeout. Initialized with the value of
-     * {@link IgniteConfiguration#getFailureDetectionTimeout()}.
+     *  Failure detection timeout. Initialized with the value of
+     *  {@link IgniteConfiguration#getFailureDetectionTimeout()}.
      */
     private long failureDetectionTimeout;
 
-    /** Start flag to deny repeating start attempts. */
-    private final AtomicBoolean startedFlag = new AtomicBoolean();
-
     /**
      * Creates new adapter and initializes it from the current (this) class.
      * SPI name will be initialized to the simple name of the class
@@ -121,26 +118,6 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
         startTstamp = U.currentTimeMillis();
     }
 
-    /**
-     * This method is called by built-in managers implementation to avoid
-     * repeating SPI start attempts.
-     */
-    public final void onBeforeStart() {
-        if (!startedFlag.compareAndSet(false, true))
-            throw new IllegalStateException("SPI has already been started " +
-                "(always create new configuration instance for each starting Ignite instances) " +
-                "[spi=" + this + ']');
-    }
-
-    /**
-     * Checks if {@link #onBeforeStart()} has been called on this SPI instance.
-     *
-     * @return {@code True} if {@link #onBeforeStart()} has already been called.
-     */
-    public final boolean started() {
-        return startedFlag.get();
-    }
-
     /** {@inheritDoc} */
     @Override public final String getStartTimestampFormatted() {
         return DateFormat.getDateTimeInstance().format(new Date(startTstamp));

http://git-wip-us.apache.org/repos/asf/ignite/blob/40a41fc5/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
index e1db958..0998025 100644
--- a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
+++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
@@ -987,31 +987,6 @@ public class GridFactorySelfTest extends GridCommonAbstractTest {
     }
 
     /**
-     * @throws Exception If failed.
-     */
-    public void testRepeatingStart() throws Exception {
-        try {
-            IgniteConfiguration c = getConfiguration("1");
-
-            startGrid("1", c);
-
-            assert ((TcpDiscoverySpi)c.getDiscoverySpi()).started();
-
-            try {
-                startGrid("2", c);
-
-                fail("Should not be able to start grid using same configuration instance.");
-            }
-            catch (Exception e) {
-                info("Caught expected exception: " + e);
-            }
-        }
-        finally {
-            stopAllGrids();
-        }
-    }
-
-    /**
      * Test task.
      */
     private static class TestTask extends ComputeTaskSplitAdapter<Void, Void> {


[4/5] ignite git commit: review IGNITE-2708 Need to validate that SPIs are started only once (added logic to protect properly started grids) (cherry picked from commit b8d624a)

Posted by dm...@apache.org.
review IGNITE-2708 Need to validate that SPIs are started only once (added logic to protect properly started grids)
(cherry picked from commit b8d624a)


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

Branch: refs/heads/master
Commit: 9d937ca34775f39b46568eb3fca4585ce00a0fb1
Parents: d05786d
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri May 13 12:54:01 2016 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri May 27 14:35:42 2016 +0300

----------------------------------------------------------------------
 .../internal/managers/GridManagerAdapter.java       | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9d937ca3/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index 1a0d60f..4fe8ca8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.managers;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.UUID;
 import javax.cache.expiry.Duration;
@@ -84,6 +85,9 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
     /** Checks is SPI implementation is {@code NO-OP} or not. */
     private final boolean enabled;
 
+    /** */
+    private final Map<IgniteSpi, Boolean> spiMap = new IdentityHashMap<>();
+
     /**
      * @param ctx Kernal context.
      * @param spis Specific SPI instance.
@@ -212,6 +216,11 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
             if (spi instanceof IgniteSpiAdapter)
                 ((IgniteSpiAdapter)spi).onBeforeStart();
 
+            // Save SPI to map to make sure to stop it properly.
+            Boolean res = spiMap.put(spi, Boolean.TRUE);
+
+            assert res == null;
+
             // Inject all spi resources.
             ctx.resource().inject(spi);
 
@@ -275,6 +284,13 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
      */
     protected final void stopSpi() throws IgniteCheckedException {
         for (T spi : spis) {
+            if (spiMap.remove(spi) == null) {
+                if (log.isDebugEnabled())
+                    log.debug("Will not stop SPI since it has not been started by this manager: " + spi);
+
+                continue;
+            }
+
             if (log.isDebugEnabled())
                 log.debug("Stopping SPI: " + spi);
 


[3/5] ignite git commit: review IGNITE-2708 Need to validate that SPIs are started only once (commit with proper author) (cherry picked from commit 98338ff)

Posted by dm...@apache.org.
review IGNITE-2708 Need to validate that SPIs are started only once (commit with proper author)
(cherry picked from commit 98338ff)


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

Branch: refs/heads/master
Commit: d05786d8bfc8177223b6db9a98bd3c8170b6bcf1
Parents: 40a41fc
Author: Ryan Zhao <ry...@gmail.com>
Authored: Fri May 13 12:00:43 2016 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri May 27 14:35:22 2016 +0300

----------------------------------------------------------------------
 .../internal/managers/GridManagerAdapter.java   |  3 ++
 .../org/apache/ignite/spi/IgniteSpiAdapter.java | 29 ++++++++++++++++++--
 .../ignite/internal/GridFactorySelfTest.java    | 25 +++++++++++++++++
 3 files changed, 54 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d05786d8/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
index d8bd8e83..1a0d60f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java
@@ -209,6 +209,9 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan
         Collection<String> names = U.newHashSet(spis.length);
 
         for (T spi : spis) {
+            if (spi instanceof IgniteSpiAdapter)
+                ((IgniteSpiAdapter)spi).onBeforeStart();
+
             // Inject all spi resources.
             ctx.resource().inject(spi);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d05786d8/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
index f31aae7..65b0420 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
@@ -25,6 +25,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -39,7 +40,6 @@ import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.managers.communication.GridMessageListener;
 import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
-import org.apache.ignite.internal.processors.cache.GridCacheUtils;
 import org.apache.ignite.internal.processors.timeout.GridSpiTimeoutObject;
 import org.apache.ignite.internal.util.IgniteExceptionRegistry;
 import org.apache.ignite.internal.util.typedef.F;
@@ -97,11 +97,14 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
     private boolean failureDetectionTimeoutEnabled = true;
 
     /**
-     *  Failure detection timeout. Initialized with the value of
-     *  {@link IgniteConfiguration#getFailureDetectionTimeout()}.
+     * Failure detection timeout. Initialized with the value of
+     * {@link IgniteConfiguration#getFailureDetectionTimeout()}.
      */
     private long failureDetectionTimeout;
 
+    /** Start flag to deny repeating start attempts. */
+    private final AtomicBoolean startedFlag = new AtomicBoolean();
+
     /**
      * Creates new adapter and initializes it from the current (this) class.
      * SPI name will be initialized to the simple name of the class
@@ -118,6 +121,26 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement
         startTstamp = U.currentTimeMillis();
     }
 
+    /**
+     * This method is called by built-in managers implementation to avoid
+     * repeating SPI start attempts.
+     */
+    public final void onBeforeStart() {
+        if (!startedFlag.compareAndSet(false, true))
+            throw new IllegalStateException("SPI has already been started " +
+                "(always create new configuration instance for each starting Ignite instances) " +
+                "[spi=" + this + ']');
+    }
+
+    /**
+     * Checks if {@link #onBeforeStart()} has been called on this SPI instance.
+     *
+     * @return {@code True} if {@link #onBeforeStart()} has already been called.
+     */
+    public final boolean started() {
+        return startedFlag.get();
+    }
+
     /** {@inheritDoc} */
     @Override public final String getStartTimestampFormatted() {
         return DateFormat.getDateTimeInstance().format(new Date(startTstamp));

http://git-wip-us.apache.org/repos/asf/ignite/blob/d05786d8/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
index 0998025..e1db958 100644
--- a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
+++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
@@ -987,6 +987,31 @@ public class GridFactorySelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    public void testRepeatingStart() throws Exception {
+        try {
+            IgniteConfiguration c = getConfiguration("1");
+
+            startGrid("1", c);
+
+            assert ((TcpDiscoverySpi)c.getDiscoverySpi()).started();
+
+            try {
+                startGrid("2", c);
+
+                fail("Should not be able to start grid using same configuration instance.");
+            }
+            catch (Exception e) {
+                info("Caught expected exception: " + e);
+            }
+        }
+        finally {
+            stopAllGrids();
+        }
+    }
+
+    /**
      * Test task.
      */
     private static class TestTask extends ComputeTaskSplitAdapter<Void, Void> {


[5/5] ignite git commit: Merge remote-tracking branch 'remotes/community/gridgain-7.6.1'

Posted by dm...@apache.org.
Merge remote-tracking branch 'remotes/community/gridgain-7.6.1'


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

Branch: refs/heads/master
Commit: 8c578aaa29a4063097dcf1b20ca983e4ece9bf94
Parents: 271f9ee 9d937ca
Author: Denis Magda <dm...@gridgain.com>
Authored: Fri May 27 14:37:07 2016 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Fri May 27 14:37:07 2016 +0300

----------------------------------------------------------------------

----------------------------------------------------------------------