Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEM-983 7f920879a -> 8165e6047


fixed formatting. Removed class sync on rmqFactory


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/8165e604
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/8165e604
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/8165e604

Branch: refs/heads/feature/GEM-983
Commit: 8165e60471f99bd9d078f523cf54355891dd7d12
Parents: 7f92087
Author: Darrel Schneider <dschnei...@pivotal.io>
Authored: Wed Oct 12 11:37:41 2016 -0700
Committer: Darrel Schneider <dschnei...@pivotal.io>
Committed: Wed Oct 12 11:37:41 2016 -0700

----------------------------------------------------------------------
 .../geode/internal/cache/GemFireCacheImpl.java  | 121 ++++++++-----------
 1 file changed, 52 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8165e604/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
index 9da3e79..0e23aaa 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/GemFireCacheImpl.java
@@ -843,7 +843,7 @@ public class GemFireCacheImpl implements InternalCache, 
ClientCache, HasCachePer
       
       this.cqService = CqServiceProvider.create(this);
 
-      initReliableMessageQueueFactory();
+      this.rmqFactory = new ReliableMessageQueueFactoryImpl();
 
       // Create the CacheStatistics
       this.cachePerfStats = new CachePerfStats(system);
@@ -1678,40 +1678,38 @@ public class GemFireCacheImpl implements InternalCache, 
ClientCache, HasCachePer
       return;
     }
 
-    synchronized(GemFireCacheImpl.class) {
-      synchronized(this) {
-    // bug 44031 requires multithread shutdownall should be grouped
-    // by root region. However, shutDownAllDuringRecovery.conf test revealed 
that
-    // we have to close colocated child regions first.
-    // Now check all the PR, if anyone has colocate-with attribute, sort all 
the
-    // PRs by colocation relationship and close them sequentially, otherwise 
still
-    // group them by root region.
-    TreeMap<String, Map<String, PartitionedRegion>> prTrees = getPRTrees();
-    if (prTrees.size() > 1 && shutdownAllPoolSize != 1) {
-      ExecutorService es = getShutdownAllExecutorService(prTrees.size());
-      for (final Map<String, PartitionedRegion> prSubMap : prTrees.values()) {
-        es.execute(new Runnable() {
-          public void run() {
-            ConnectionTable.threadWantsSharedResources();
-            shutdownSubTreeGracefully(prSubMap);
-          }
-        });
-      } // for each root
-      es.shutdown();
-      try {
-        es.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);
-      } catch (InterruptedException e) {
-        logger.debug("Shutdown all interrupted while waiting for PRs to be 
shutdown gracefully.");
-      }
+    synchronized (GemFireCacheImpl.class) {
+      // bug 44031 requires multithread shutdownall should be grouped
+      // by root region. However, shutDownAllDuringRecovery.conf test revealed 
that
+      // we have to close colocated child regions first.
+      // Now check all the PR, if anyone has colocate-with attribute, sort all 
the
+      // PRs by colocation relationship and close them sequentially, otherwise 
still
+      // group them by root region.
+      TreeMap<String, Map<String, PartitionedRegion>> prTrees = getPRTrees();
+      if (prTrees.size() > 1 && shutdownAllPoolSize != 1) {
+        ExecutorService es = getShutdownAllExecutorService(prTrees.size());
+        for (final Map<String, PartitionedRegion> prSubMap : prTrees.values()) 
{
+          es.execute(new Runnable() {
+            public void run() {
+              ConnectionTable.threadWantsSharedResources();
+              shutdownSubTreeGracefully(prSubMap);
+            }
+          });
+        } // for each root
+        es.shutdown();
+        try {
+          es.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);
+        } catch (InterruptedException e) {
+          logger.debug("Shutdown all interrupted while waiting for PRs to be 
shutdown gracefully.");
+        }
 
-    } else {
-      for (final Map<String, PartitionedRegion> prSubMap : prTrees.values()) {
-        shutdownSubTreeGracefully(prSubMap);
+      } else {
+        for (final Map<String, PartitionedRegion> prSubMap : prTrees.values()) 
{
+          shutdownSubTreeGracefully(prSubMap);
+        }
       }
-    }
 
-    close("Shut down all members", null, false, true);
-      }
+      close("Shut down all members", null, false, true);
     }
   }
 
@@ -4061,17 +4059,17 @@ public class GemFireCacheImpl implements InternalCache, 
ClientCache, HasCachePer
    * cache requires, or does not require notification of all region/entry 
events.
    */
   public void addPartitionedRegion(PartitionedRegion r) {
-      synchronized (this.partitionedRegions) {
-        if (r.isDestroyed()) {
-          if (logger.isDebugEnabled()) {
-            logger.debug("GemFireCache#addPartitionedRegion did not add 
destroyed {}", r);
-          }
-          return;
-        }
-        if (this.partitionedRegions.add(r)) {
-          getCachePerfStats().incPartitionedRegions(1);
+    synchronized (this.partitionedRegions) {
+      if (r.isDestroyed()) {
+        if (logger.isDebugEnabled()) {
+          logger.debug("GemFireCache#addPartitionedRegion did not add 
destroyed {}", r);
         }
+        return;
       }
+      if (this.partitionedRegions.add(r)) {
+        getCachePerfStats().incPartitionedRegions(1);
+      }
+    }
   }
 
   /**
@@ -4164,20 +4162,20 @@ public class GemFireCacheImpl implements InternalCache, 
ClientCache, HasCachePer
    * @return true if the region should deliver all of its events to this cache
    */
   protected boolean requiresNotificationFromPR(PartitionedRegion r) {
-      boolean hasSerialSenders = hasSerialSenders(r);
-      boolean result = hasSerialSenders;
-      if (!result) {
-        Iterator allCacheServersIterator = allCacheServers.iterator();
-        while (allCacheServersIterator.hasNext()) {
-          CacheServerImpl server = (CacheServerImpl) 
allCacheServersIterator.next();
-          if (!server.getNotifyBySubscription()) {
-            result = true;
-            break;
-          }
+    boolean hasSerialSenders = hasSerialSenders(r);
+    boolean result = hasSerialSenders;
+    if (!result) {
+      Iterator allCacheServersIterator = allCacheServers.iterator();
+      while (allCacheServersIterator.hasNext()) {
+        CacheServerImpl server = (CacheServerImpl) 
allCacheServersIterator.next();
+        if (!server.getNotifyBySubscription()) {
+          result = true;
+          break;
         }
-
       }
-      return result;
+
+    }
+    return result;
   }
 
   private boolean hasSerialSenders(PartitionedRegion r) {
@@ -4353,26 +4351,11 @@ public class GemFireCacheImpl implements InternalCache, 
ClientCache, HasCachePer
   /**
    * This cache's reliable message queue factory. Should always have an 
instance of it.
    */
-  private ReliableMessageQueueFactory rmqFactory;
+  private final ReliableMessageQueueFactory rmqFactory;
 
   private List<File> backupFiles = Collections.emptyList();
 
   /**
-   * Initializes the reliable message queue. Needs to be called at cache 
creation
-   *
-   * @throws IllegalStateException
-   *           if the factory is in use
-   */
-  private void initReliableMessageQueueFactory() {
-    synchronized (GemFireCacheImpl.class) {
-      if (this.rmqFactory != null) {
-        this.rmqFactory.close(false);
-      }
-      this.rmqFactory = new ReliableMessageQueueFactoryImpl();
-    }
-  }
-
-  /**
    * Returns this cache's ReliableMessageQueueFactory.
    *
    * @since GemFire 5.0

Reply via email to