You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2019/12/06 23:29:56 UTC
[geode] 03/03: remove dependency on GemFireIOException and make a
concrete list of remaining exception dependencies
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 18d34a2f810cc6cea9e654a80c4aeb33c781f847
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Fri Dec 6 15:28:52 2019 -0800
remove dependency on GemFireIOException and make a concrete list of remaining exception dependencies
---
.../gms/messenger/JGroupsMessengerJUnitTest.java | 14 +++++------
.../membership/gms/MembershipIOException.java | 27 ++++++++++++++++++++++
.../membership/gms/messenger/JGroupsMessenger.java | 15 ++++++------
.../sanctioned-geode-core-serializables.txt | 1 +
.../MembershipDependenciesJUnitTest.java | 18 +++++++++++++--
5 files changed, 59 insertions(+), 16 deletions(-)
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
index 351b248..d2b7bfc 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
@@ -67,7 +67,6 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.ForcedDisconnectException;
-import org.apache.geode.GemFireIOException;
import org.apache.geode.SerializationException;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.distributed.DistributedSystemDisconnectedException;
@@ -77,6 +76,7 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe
import org.apache.geode.distributed.internal.membership.adapter.ServiceConfig;
import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
import org.apache.geode.distributed.internal.membership.gms.MemberIdentifierFactoryImpl;
+import org.apache.geode.distributed.internal.membership.gms.MembershipIOException;
import org.apache.geode.distributed.internal.membership.gms.Services;
import org.apache.geode.distributed.internal.membership.gms.Services.Stopper;
import org.apache.geode.distributed.internal.membership.gms.api.MemberIdentifier;
@@ -289,14 +289,14 @@ public class JGroupsMessengerJUnitTest {
when(msg.getDSFID()).thenReturn((int) DataSerializableFixedID.HEARTBEAT_RESPONSE);
// for code coverage we need to test with both a SerializationException and
- // an IOException. The former is wrapped in a GemfireIOException while the
+ // an IOException. The former is wrapped in a MembershipIOException while the
// latter is not
doThrow(new SerializationException("")).when(msg).toData(any(DataOutput.class),
any(SerializationContext.class));
try {
messenger.send(msg);
fail("expected a failure");
- } catch (GemFireIOException e) {
+ } catch (MembershipIOException e) {
// success
}
if (enableMcast) {
@@ -307,7 +307,7 @@ public class JGroupsMessengerJUnitTest {
try {
messenger.send(msg);
fail("expected a failure");
- } catch (GemFireIOException e) {
+ } catch (MembershipIOException e) {
// success
}
}
@@ -432,7 +432,7 @@ public class JGroupsMessengerJUnitTest {
interceptor.collectMessages = true;
try {
messenger.sendUnreliably(msg);
- } catch (GemFireIOException e) {
+ } catch (MembershipIOException e) {
fail("expected success");
}
if (enableMcast) {
@@ -943,8 +943,8 @@ public class JGroupsMessengerJUnitTest {
MemberIdentifier mbr = createAddress(1234);
messenger.scheduledMcastSeqnos.put(mbr, new JGroupsMessenger.MessageTracker(30));
messenger.waitForMessageState(mbr, state);
- fail("expected a GemFireIOException to be thrown");
- } catch (GemFireIOException e) {
+ fail("expected a MembershipIOException to be thrown");
+ } catch (MembershipIOException e) {
// pass
}
}
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipIOException.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipIOException.java
new file mode 100644
index 0000000..29a9b0d
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipIOException.java
@@ -0,0 +1,27 @@
+/*
+ * 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 MembershipIOException extends RuntimeException {
+ private static final long serialVersionUID = -4952945536387123344L;
+
+ public MembershipIOException(String message) {
+ super(message);
+ }
+
+ public MembershipIOException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
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 f04816a..0ea55fa 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
@@ -67,7 +67,6 @@ import org.jgroups.util.Digest;
import org.jgroups.util.UUID;
import org.apache.geode.GemFireConfigException;
-import org.apache.geode.GemFireIOException;
import org.apache.geode.SystemConnectException;
import org.apache.geode.alerting.internal.spi.AlertingAction;
import org.apache.geode.annotations.internal.MutableForTesting;
@@ -78,6 +77,7 @@ 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.MemberDisconnectedException;
+import org.apache.geode.distributed.internal.membership.gms.MembershipIOException;
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;
@@ -656,7 +656,7 @@ public class JGroupsMessenger implements Messenger {
Long.toString((warnTime - startTime) / 1000L), sender, received, seqno);
}
if (now >= quitTime) {
- throw new GemFireIOException("Multicast operations from " + sender
+ throw new InterruptedException("Multicast operations from " + sender
+ " did not distribute within " + (now - startTime) + " milliseconds");
}
Thread.sleep(50);
@@ -882,18 +882,19 @@ public class JGroupsMessenger implements Messenger {
msg.setBuffer(out_stream.toByteArray());
services.getStatistics().endMsgSerialization(start);
- } catch (IOException | GemFireIOException ex) {
+ } catch (IOException | MembershipIOException ex) {
logger.warn("Error serializing message", ex);
- if (ex instanceof GemFireIOException) {
- throw (GemFireIOException) ex;
+ if (ex instanceof MembershipIOException) {
+ throw (MembershipIOException) ex;
} else {
- GemFireIOException ioe = new GemFireIOException("Error serializing message");
+ MembershipIOException ioe = new MembershipIOException("Error serializing message");
ioe.initCause(ex);
throw ioe;
}
} catch (Exception ex) {
logger.warn("Error serializing message", ex);
- GemFireIOException ioe = new GemFireIOException("Error serializing message", ex.getCause());
+ MembershipIOException ioe =
+ new MembershipIOException("Error serializing message", ex.getCause());
throw ioe;
}
return msg;
diff --git a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
index 3370686..cbff922 100644
--- a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
+++ b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
@@ -261,6 +261,7 @@ org/apache/geode/distributed/internal/locks/DistributedMemberLock$LockReentryPol
org/apache/geode/distributed/internal/locks/LockGrantorDestroyedException,true,-3540124531032570817
org/apache/geode/distributed/internal/membership/gms/InternalMembershipException,true,-6628379091114414599
org/apache/geode/distributed/internal/membership/gms/MemberDisconnectedException,true,-3649273301807236514
+org/apache/geode/distributed/internal/membership/gms/MembershipIOException,true,-4952945536387123344
org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeave$ViewAbandonedException,false
org/apache/geode/distributed/internal/membership/gms/messages/InstallViewMessage$messageType,false
org/apache/geode/internal/ConfigSource,true,-4097017272431018553,description:java/lang/String,type:org/apache/geode/internal/ConfigSource$Type
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 7010767..1e9975b 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
@@ -30,10 +30,14 @@ import com.tngtech.archunit.lang.ArchRule;
import org.junit.runner.RunWith;
import org.apache.geode.CancelCriterion;
-import org.apache.geode.GemFireException;
+import org.apache.geode.CancelException;
+import org.apache.geode.GemFireConfigException;
+import org.apache.geode.SystemConnectException;
import org.apache.geode.alerting.internal.spi.AlertingAction;
import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.distributed.DistributedSystemDisconnectedException;
import org.apache.geode.distributed.Locator;
+import org.apache.geode.distributed.internal.DistributionException;
import org.apache.geode.distributed.internal.LocatorStats;
import org.apache.geode.distributed.internal.membership.adapter.LocalViewMessage;
import org.apache.geode.distributed.internal.tcpserver.ConnectionWatcher;
@@ -46,7 +50,10 @@ import org.apache.geode.internal.concurrent.ConcurrentHashSet;
import org.apache.geode.internal.net.SocketCreator;
import org.apache.geode.internal.net.SocketCreatorFactory;
import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.internal.tcp.MemberShunnedException;
import org.apache.geode.internal.util.JavaWorkarounds;
+import org.apache.geode.security.AuthenticationRequiredException;
+import org.apache.geode.security.GemFireSecurityException;
@RunWith(ArchUnitRunner.class)
@AnalyzeClasses(packages = "org.apache.geode.distributed.internal.membership.gms..",
@@ -109,7 +116,14 @@ public class MembershipDependenciesJUnitTest {
.or(type(LocatorStats.class))
// TODO: Figure out what to do with exceptions
- .or(assignableTo(GemFireException.class))
+ .or(type(AuthenticationRequiredException.class))
+ .or(type(CancelException.class))
+ .or(type(DistributionException.class))
+ .or(type(DistributedSystemDisconnectedException.class))
+ .or(type(GemFireSecurityException.class))
+ .or(type(GemFireConfigException.class))
+ .or(type(MemberShunnedException.class))
+ .or(type(SystemConnectException.class))
// TODO: Serialization needs to become its own module
.or(type(InternalDataSerializer.class)) // still used by GMSLocator