You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/05/10 17:32:30 UTC

[4/5] ignite git commit: Merge branch 'master' into ignite-5789-1

http://git-wip-us.apache.org/repos/asf/ignite/blob/3daf8128/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index fb5c107,39f4ed1..3e0b1de
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@@ -40,8 -41,9 +41,10 @@@ import org.apache.ignite.IgniteCheckedE
  import org.apache.ignite.IgniteLogger;
  import org.apache.ignite.IgniteSystemProperties;
  import org.apache.ignite.cache.CacheMode;
+ import org.apache.ignite.cache.CacheRebalanceMode;
  import org.apache.ignite.cluster.ClusterNode;
 +import org.apache.ignite.configuration.CacheConfiguration;
+ import org.apache.ignite.configuration.IgniteConfiguration;
  import org.apache.ignite.configuration.NearCacheConfiguration;
  import org.apache.ignite.events.DiscoveryEvent;
  import org.apache.ignite.internal.IgniteClientDisconnectedCheckedException;
@@@ -69,9 -72,11 +73,12 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.ExchangeDiscoveryEvents;
  import org.apache.ignite.internal.processors.cache.GridCacheContext;
  import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate;
 +import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
  import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+ import org.apache.ignite.internal.processors.cache.LocalJoinCachesContext;
  import org.apache.ignite.internal.processors.cache.StateChangeRequest;
+ import org.apache.ignite.internal.processors.cache.WalStateAbstractMessage;
+ import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.latch.Latch;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridClientPartitionTopology;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
  import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
@@@ -724,29 -789,7 +791,29 @@@ public class GridDhtPartitionsExchangeF
              cctx.database().readCheckpointAndRestoreMemory(startDescs);
          }
  
-         cctx.cache().startCachesOnLocalJoin(caches, initialVersion());
+         cctx.cache().startCachesOnLocalJoin(locJoinCtx, initialVersion());
 +
 +        ensureClientCachesStarted();
 +    }
 +
 +    /**
 +     * Start client caches if absent.
 +     */
 +    private void ensureClientCachesStarted() {
 +        GridCacheProcessor cacheProcessor = cctx.cache();
 +
 +        Set<String> cacheNames = new HashSet<>(cacheProcessor.cacheNames());
 +
 +        List<CacheConfiguration> notStartedCacheConfigs = new ArrayList<>();
 +
 +        for (CacheConfiguration cCfg : cctx.gridConfig().getCacheConfiguration()) {
 +            if (!cacheNames.contains(cCfg.getName())) {
 +                notStartedCacheConfigs.add(cCfg);
 +            }
 +        }
 +
 +        if (!notStartedCacheConfigs.isEmpty())
 +            cacheProcessor.dynamicStartCaches(notStartedCacheConfigs, false, false);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/3daf8128/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
index ffb339c,505d373..8c0cb1a
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
@@@ -17,11 -17,10 +17,13 @@@
  
  package org.apache.ignite.internal.processors.cache;
  
+ import javax.cache.CacheException;
 +import java.util.ArrayList;
 +import java.util.LinkedHashMap;
 +import java.util.List;
  import org.apache.ignite.Ignite;
  import org.apache.ignite.IgniteCache;
+ import org.apache.ignite.IgniteClientDisconnectedException;
  import org.apache.ignite.IgniteDataStreamer;
  import org.apache.ignite.binary.BinaryObject;
  import org.apache.ignite.binary.BinaryObjectBuilder;
@@@ -115,10 -114,14 +116,12 @@@ public class ClientReconnectAfterCluste
      /** */
      public void testReconnectClient() throws Exception {
          try {
 -            startGrid(0);
 -
 -            Ignite client = startGrid(1);
 -
 +            startGrid(SERVER_ID);
 +            Ignite client = startGrid(CLIENT_ID);
              checkTopology(2);
  
+             IgniteCache<Long, BinaryObject> cache = client.getOrCreateCache(CACHE_PARAMS).withKeepBinary();
+ 
              client.events().localListen(new IgnitePredicate<Event>() {
  
                  @Override public boolean apply(Event event) {
@@@ -159,19 -162,17 +162,17 @@@
  
              Thread.sleep(2_000);
  
 -            startGrid(0);
 +            startGrid(SERVER_ID);
  
-             assert GridTestUtils.waitForCondition(new GridAbsPredicate() {
-                 @Override public boolean apply() {
-                     try {
-                         checkTopology(2);
+             try {
+                 assertNull(cache.get(1L));
+             } catch (CacheException ce) {
+                 IgniteClientDisconnectedException icde = (IgniteClientDisconnectedException)ce.getCause();
  
-                         return true;
-                     } catch (Exception ex) {
-                         return false;
-                     }
-                 }
-             }, 30_000);
+                 icde.reconnectFuture().get();
+ 
+                 assertNull(cache.get(1L));
+             }
  
              info("Pre-insert");