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 <[email protected]> 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
