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
