Description
Looks like GridDiscoveryManager.registeredCaches is updated concurrently from GridDiscoveryManager.start() and from event thread.
Reproduces from time to time in IgniteDynamicCacheStartSelfTest.testStartStopWithClientJoin:
org.apache.ignite.IgniteCheckedException: null at java.util.HashMap$HashIterator.nextEntry(HashMap.java:839) at java.util.HashMap$EntryIterator.next(HashMap.java:880) at java.util.HashMap$EntryIterator.next(HashMap.java:878) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoCache.<init>(GridDiscoveryManager.java:2242) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoCache.<init>(GridDiscoveryManager.java:2121) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:528) at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1369) at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:800) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1538) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1405) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:931) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:477) at org.apache.ignite.testframework.junits.GridAbstractTest.startGrid(GridAbstractTest.java:663) at org.apache.ignite.testframework.junits.GridAbstractTest.startGrid(GridAbstractTest.java:648) at org.apache.ignite.testframework.junits.GridAbstractTest.startGrid(GridAbstractTest.java:625) at org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartSelfTest.access$1200(IgniteDynamicCacheStartSelfTest.java:45)