This is an automated email from the ASF dual-hosted git repository. bschuchardt pushed a commit to branch feature/GEODE-7877 in repository https://gitbox.apache.org/repos/asf/geode.git
commit 41e37df79f05cdbd6d45967b2594014af85015dd Author: Bruce Schuchardt <[email protected]> AuthorDate: Mon Mar 16 14:22:25 2020 -0700 GEODE-7877: deal with the static Version map in TcpClient The server-version map that tracks Locator versions is now an instance variable instead of a static. I looked into removing the map altogether but it's really needed for rolling-upgrade purposes. When one locator is rolled to a new version of Geode but another locator is still running the old version it's essential that the new locator know that it's communicating with an old locator. --- .../apache/geode/test/dunit/rules/DistributedRule.java | 2 -- .../geode/distributed/internal/tcpserver/TcpClient.java | 16 +--------------- .../internal/tcpserver/TcpServerJUnitTest.java | 6 ------ 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java index 7799697..1943fcd 100644 --- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java +++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/rules/DistributedRule.java @@ -28,7 +28,6 @@ import org.apache.geode.cache30.ClientServerTestCase; import org.apache.geode.cache30.RegionTestCase; import org.apache.geode.distributed.internal.DistributionMessageObserver; import org.apache.geode.distributed.internal.InternalDistributedSystem; -import org.apache.geode.distributed.internal.tcpserver.TcpClient; import org.apache.geode.internal.admin.ClientStatsManager; import org.apache.geode.internal.cache.DiskStoreObserver; import org.apache.geode.internal.cache.InitialImageOperation; @@ -243,7 +242,6 @@ public class DistributedRule extends AbstractDistributedRule { RegionTestCase.preSnapshotRegion = null; SocketCreator.resetHostNameCache(); SocketCreator.resolve_dns = true; - TcpClient.clearStaticData(); // clear system properties -- keep alphabetized System.clearProperty(GeodeGlossary.GEMFIRE_PREFIX + "log-level"); diff --git a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpClient.java b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpClient.java index f57b584..fd71941 100644 --- a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpClient.java +++ b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpClient.java @@ -32,7 +32,6 @@ import javax.net.ssl.SSLException; import org.apache.logging.log4j.Logger; -import org.apache.geode.annotations.internal.MakeNotStatic; import org.apache.geode.internal.serialization.ObjectDeserializer; import org.apache.geode.internal.serialization.ObjectSerializer; import org.apache.geode.internal.serialization.UnsupportedSerializationVersionException; @@ -54,8 +53,7 @@ public class TcpClient { private static final int DEFAULT_REQUEST_TIMEOUT = 60 * 2 * 1000; - @MakeNotStatic - private static final Map<HostAndPort, Short> serverVersions = + private final Map<HostAndPort, Short> serverVersions = new HashMap<>(); private final TcpSocketCreator socketCreator; @@ -309,16 +307,4 @@ public class TcpClient { } return Short.valueOf(Version.GFE_57.ordinal()); } - - - /** - * Clear static class information concerning Locators. This is used in unit tests. It will force - * TcpClient to send version-request messages to locators to reestablish knowledge of their - * communication protocols. - */ - public static void clearStaticData() { - synchronized (serverVersions) { - serverVersions.clear(); - } - } } diff --git a/geode-tcp-server/src/test/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java b/geode-tcp-server/src/test/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java index 6e43f47..c79d5c8 100644 --- a/geode-tcp-server/src/test/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java +++ b/geode-tcp-server/src/test/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java @@ -37,7 +37,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; import org.mockito.invocation.InvocationOnMock; @@ -81,11 +80,6 @@ public class TcpServerJUnitTest { assertThat(server.isAlive()).isTrue(); } - @Before - public void setup() { - TcpClient.clearStaticData(); - } - @Test public void testConnectToUnknownHost() throws Exception { final TcpClient tcpClient = createTcpClient();
