This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a commit to branch feature/GEODE-7556
in repository https://gitbox.apache.org/repos/asf/geode.git

commit b9478d12906cfd011343915a9805174b92d63aca
Author: Bruce Schuchardt <[email protected]>
AuthorDate: Fri Dec 6 10:41:44 2019 -0800

    removed use of InternalGemFireException
---
 .../distributed/internal/DistributionImpl.java     | 17 +++++++++-
 .../internal/membership/gms/GMSMembership.java     | 39 +++-------------------
 .../gms/InternalMembershipException.java           | 21 ++++++++++++
 .../membership/gms/locator/GMSLocator.java         | 10 +++---
 .../membership/gms/messenger/JGroupsMessenger.java |  8 ++---
 .../MembershipDependenciesJUnitTest.java           |  1 -
 6 files changed, 51 insertions(+), 45 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
index 2950e4c..54886dc 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
@@ -34,6 +34,8 @@ import java.util.function.Supplier;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.CancelException;
+import org.apache.geode.GemFireConfigException;
+import org.apache.geode.SystemConnectException;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.ToDataException;
 import org.apache.geode.annotations.VisibleForTesting;
@@ -72,8 +74,10 @@ import 
org.apache.geode.internal.serialization.DeserializationContext;
 import org.apache.geode.internal.serialization.SerializationContext;
 import org.apache.geode.internal.serialization.Version;
 import org.apache.geode.internal.tcp.ConnectExceptions;
+import org.apache.geode.internal.tcp.ConnectionException;
 import org.apache.geode.internal.util.Breadcrumbs;
 import org.apache.geode.logging.internal.executors.LoggingThread;
+import org.apache.geode.security.GemFireSecurityException;
 
 public class DistributionImpl implements Distribution {
   private static final Logger logger = Services.getLogger();
@@ -170,7 +174,18 @@ public class DistributionImpl implements Distribution {
 
   @Override
   public void start() {
-    membership.start();
+    try {
+      membership.start();
+    } catch (ConnectionException e) {
+      throw new DistributionException(
+          "Unable to create membership manager",
+          e);
+    } catch (GemFireConfigException | SystemConnectException | 
GemFireSecurityException e) {
+      throw e;
+    } catch (RuntimeException e) {
+      Services.getLogger().error("Unexpected problem starting up membership 
services", e);
+      throw new SystemConnectException("Problem starting up membership 
services", e);
+    }
   }
 
   @VisibleForTesting
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
index 3665af1..5fe5197 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java
@@ -43,14 +43,11 @@ import org.apache.logging.log4j.Logger;
 import org.apache.geode.CancelException;
 import org.apache.geode.ForcedDisconnectException;
 import org.apache.geode.GemFireConfigException;
-import org.apache.geode.InternalGemFireError;
-import org.apache.geode.SystemConnectException;
 import org.apache.geode.SystemFailure;
 import org.apache.geode.annotations.internal.MakeNotStatic;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.DistributedSystemDisconnectedException;
 import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.distributed.internal.DistributionException;
 import org.apache.geode.distributed.internal.StartupMessage;
 import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.distributed.internal.membership.MembershipView;
@@ -66,11 +63,9 @@ import 
org.apache.geode.distributed.internal.membership.gms.api.MessageListener;
 import org.apache.geode.distributed.internal.membership.gms.api.QuorumChecker;
 import org.apache.geode.distributed.internal.membership.gms.interfaces.Manager;
 import org.apache.geode.internal.serialization.Version;
-import org.apache.geode.internal.tcp.ConnectionException;
 import org.apache.geode.internal.tcp.MemberShunnedException;
 import org.apache.geode.logging.internal.executors.LoggingExecutors;
 import org.apache.geode.logging.internal.executors.LoggingThread;
-import org.apache.geode.security.GemFireSecurityException;
 
 public class GMSMembership implements Membership {
   private static final Logger logger = Services.getLogger();
@@ -580,7 +575,6 @@ public class GMSMembership implements Membership {
    * Joins the distributed system
    *
    * @throws GemFireConfigException - configuration error
-   * @throws SystemConnectException - problem joining
    */
   private void join() {
     services.setShutdownCause(null);
@@ -603,16 +597,6 @@ public class GMSMembership implements Membership {
         latestView = new MembershipView(initialView, initialView.getViewId());
         latestView.makeUnmodifiable();
         listener.viewInstalled(latestView);
-
-      } catch (RuntimeException ex) {
-        throw ex;
-      } catch (Exception ex) {
-        if (ex.getCause() != null && ex.getCause().getCause() instanceof 
SystemConnectException) {
-          throw (SystemConnectException) (ex.getCause().getCause());
-        }
-        throw new DistributionException(
-            "An Exception was thrown while attempting to join the distributed 
system.",
-            ex);
       } finally {
         this.isJoining = false;
       }
@@ -1088,11 +1072,9 @@ public class GMSMembership implements Membership {
       processView(o.gmsView.getViewId(), o.gmsView);
     } else if (o.isSurpriseConnect()) { // connect
       processSurpriseConnect(o.member);
+    } else {
+      throw new IllegalArgumentException("unknown startup event: " + o);
     }
-
-    else // sanity
-      throw new InternalGemFireError(
-          String.format("unknown startup event: %s", o));
   }
 
   /**
@@ -1938,18 +1920,7 @@ public class GMSMembership implements Membership {
 
   @Override
   public void start() {
-    try {
-      services.start();
-    } catch (ConnectionException e) {
-      throw new DistributionException(
-          "Unable to create membership manager",
-          e);
-    } catch (GemFireConfigException | SystemConnectException | 
GemFireSecurityException e) {
-      throw e;
-    } catch (RuntimeException e) {
-      Services.getLogger().error("Unexpected problem starting up membership 
services", e);
-      throw new SystemConnectException("Problem starting up membership 
services", e);
-    }
+    services.start();
   }
 
   @Override
@@ -2172,8 +2143,8 @@ public class GMSMembership implements Membership {
           listener.quorumLost(
               gmsMemberCollectionToInternalDistributedMemberSet(failures),
               remaining);
-        } catch (CancelException e) {
-          // safe to ignore - a forced disconnect probably occurred
+        } catch (Exception e) {
+          logger.info("Quorum-loss listener threw an exception", e);
         }
       }
     }
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/InternalMembershipException.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/InternalMembershipException.java
new file mode 100644
index 0000000..8f89689
--- /dev/null
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/InternalMembershipException.java
@@ -0,0 +1,21 @@
+/*
+ * 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.geode.distributed.internal.membership.gms;
+
+public class InternalMembershipException extends RuntimeException {
+  public InternalMembershipException(String s, Throwable e) {
+    super(s, e);
+  }
+}
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocator.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocator.java
index 50647e9..85ffe61 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocator.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocator.java
@@ -37,11 +37,11 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.logging.log4j.Logger;
 
-import org.apache.geode.InternalGemFireException;
 import org.apache.geode.annotations.VisibleForTesting;
 import org.apache.geode.distributed.internal.LocatorStats;
 import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
 import org.apache.geode.distributed.internal.membership.gms.GMSUtil;
+import 
org.apache.geode.distributed.internal.membership.gms.InternalMembershipException;
 import org.apache.geode.distributed.internal.membership.gms.Services;
 import 
org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier;
 import org.apache.geode.distributed.internal.membership.gms.interfaces.Locator;
@@ -158,7 +158,7 @@ public class GMSLocator implements Locator {
     return viewFile;
   }
 
-  public void init(String persistentFileIdentifier) throws 
InternalGemFireException {
+  public void init(String persistentFileIdentifier) {
     if (viewFile == null) {
       viewFile =
           workingDirectory.resolve("locator" + persistentFileIdentifier + 
"view.dat").toFile();
@@ -379,7 +379,7 @@ public class GMSLocator implements Locator {
     }
   }
 
-  private void recover() throws InternalGemFireException {
+  private void recover() {
     if (!recoverFromOtherLocators()) {
       recoverFromFile(viewFile);
     }
@@ -413,7 +413,7 @@ public class GMSLocator implements Locator {
     return false;
   }
 
-  boolean recoverFromFile(File file) throws InternalGemFireException {
+  boolean recoverFromFile(File file) {
     if (!file.exists()) {
       logger.info("recovery file not found: {}", file.getAbsolutePath());
       return false;
@@ -466,7 +466,7 @@ public class GMSLocator implements Locator {
         logger.warn("Peer locator was unable to recover from or delete {}", 
file);
         viewFile = null;
       }
-      throw new InternalGemFireException(message, e);
+      throw new InternalMembershipException(message, e);
     }
   }
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
index 9a584af..fc2d346 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
@@ -69,8 +69,6 @@ import org.jgroups.util.UUID;
 import org.apache.geode.ForcedDisconnectException;
 import org.apache.geode.GemFireConfigException;
 import org.apache.geode.GemFireIOException;
-import org.apache.geode.InternalGemFireError;
-import org.apache.geode.InternalGemFireException;
 import org.apache.geode.SystemConnectException;
 import org.apache.geode.alerting.internal.spi.AlertingAction;
 import org.apache.geode.annotations.internal.MutableForTesting;
@@ -79,6 +77,7 @@ import 
org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.membership.gms.GMSMemberData;
 import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
 import org.apache.geode.distributed.internal.membership.gms.GMSUtil;
+import 
org.apache.geode.distributed.internal.membership.gms.InternalMembershipException;
 import org.apache.geode.distributed.internal.membership.gms.Services;
 import org.apache.geode.distributed.internal.membership.gms.api.MemberData;
 import 
org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier;
@@ -102,6 +101,7 @@ import org.apache.geode.internal.serialization.Version;
 import org.apache.geode.internal.serialization.VersionedDataInputStream;
 import org.apache.geode.internal.tcp.MemberShunnedException;
 
+
 @SuppressWarnings("StatementWithEmptyBody")
 public class JGroupsMessenger implements Messenger {
 
@@ -192,7 +192,7 @@ public class JGroupsMessenger implements Messenger {
       receiver.setAccessible(true);
       receiver.set(channel, r);
     } catch (NoSuchFieldException | IllegalAccessException e) {
-      throw new InternalGemFireException("unable to establish a JGroups 
receiver", e);
+      throw new InternalMembershipException("unable to establish a JGroups 
receiver", e);
     }
   }
 
@@ -538,7 +538,7 @@ public class JGroupsMessenger implements Messenger {
         ipaddr = (IpAddress) getAddress.invoke(udp, new Object[0]);
         this.jgAddress = new JGAddress(logicalAddress, ipaddr);
       } catch (NoSuchMethodException | InvocationTargetException | 
IllegalAccessException e) {
-        throw new InternalGemFireError(
+        throw new InternalMembershipException(
             "Unable to configure JGroups channel for membership 
communications", e);
       }
     }
diff --git 
a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
index a19712a..a9c6c6f 100644
--- 
a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
@@ -111,7 +111,6 @@ public class MembershipDependenciesJUnitTest {
 
               // TODO: Figure out what to do with exceptions
               .or(assignableTo(GemFireException.class))
-              .or(type(InternalGemFireError.class))
 
               // TODO: Serialization needs to become its own module
               .or(type(InternalDataSerializer.class)) // still used by 
GMSLocator

Reply via email to