Bill commented on a change in pull request #5744:
URL: https://github.com/apache/geode/pull/5744#discussion_r523280748
##########
File path:
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -97,16 +118,16 @@ public void constructs() {
assertThatCode(() -> {
internalLocator =
- new InternalLocator(port, loggingSession, logFile, logWriter,
securityLogWriter,
+ new InternalLocator(port, loggingSession, logFile, null, null,
Review comment:
My read of `InternalLocator` is that it's ok to provide `null` log
writers to the constructor ✓
##########
File path:
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -69,6 +70,8 @@
@Before
public void setUp() throws IOException {
+ // set a property to tell membership to create a new cluster
+ System.setProperty(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY, "true");
Review comment:
I assume this is done to speed up the test. I like it!
But shouldn't we be restoring the system property after the test runs? I
believe we have a JUnit rule for that?
##########
File path:
geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
##########
@@ -1115,6 +1118,9 @@ public String description() {
*/
@Test
public void testReconnectFailsDueToBadCacheXML() throws Exception {
+
IgnoredException.addIgnoredException(DistributedSystemDisconnectedException.class);
+ IgnoredException.addIgnoredException("Cause parsing to fail");
+ IgnoredException.addIgnoredException("Exception while initializing an
instance");
Review comment:
Now that the (broken) regexp is no longer hiding exceptions, and you've
explicitly added expectations for all of them, this test serves a good
documentation for these exceptions and their role in reconnect.
##########
File path:
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -88,6 +91,24 @@ public void tearDown() {
}
}
+ @Test
+ public void startedLocatorDoesNotAttemptReconnect() throws IOException,
InterruptedException {
+ // start a locator that's not part of a cluster
+ final boolean joinCluster = false;
+ internalLocator = InternalLocator.startLocator(port, logFile, null,
+ null, bindAddress, joinCluster,
+ distributedSystemProperties, hostnameForClients, workingDirectory);
+ port = internalLocator.getPort();
+ // the locator shouldn't attempt a reconnect because it's not part of a
cluster
+ internalLocator.stoppedForReconnect = true;
+ assertThat(internalLocator.attemptReconnect()).isFalse();
+ String output = FileUtils.readFileToString(logFile,
Charset.defaultCharset());
+ assertThat(output).isNotEmpty();
+ assertThat(output).contains(InternalLocator.IGNORING_RECONNECT_REQUEST);
+ }
Review comment:
I guess we had the reconnect cases covered (in the DUnit test) and this
new test is for the no-reconnect case ✓
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]