You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by go...@apache.org on 2018/06/18 23:40:56 UTC
[geode] branch develop updated: GEODE-5065: fix race in
DataSerializerPropagationDUnitTest. (#2063)
This is an automated email from the ASF dual-hosted git repository.
gosullivan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new b2216b6 GEODE-5065: fix race in DataSerializerPropagationDUnitTest. (#2063)
b2216b6 is described below
commit b2216b6c9362dd398f47848a4459ff3b1c485812
Author: Galen O'Sullivan <go...@pivotal.io>
AuthorDate: Mon Jun 18 16:40:52 2018 -0700
GEODE-5065: fix race in DataSerializerPropagationDUnitTest. (#2063)
DataSerializerPropagationDUnitTest.testServerUpFirstClientLater didn't
wait for the event to be propagated before checking its value.
Signed-off-by: Scott Jewell <sj...@pivotal.io>
---
.../DataSerializerPropagationDUnitTest.java | 54 +++++++++-------------
1 file changed, 23 insertions(+), 31 deletions(-)
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
index 45ac216..b9495da 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
@@ -82,7 +82,11 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
protected static EventID eventId;
- private static boolean testEventIDResult = false;
+ private static volatile EventID observedEventID;
+
+ private static EventID getObservedEventID() {
+ return observedEventID;
+ }
@Override
public final void postSetUp() throws Exception {
@@ -123,20 +127,28 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
return server.invoke(DataSerializerPropagationDUnitTest::createServerCache);
}
+ private void tearDownForVM() {
+ eventId = null;
+ observedEventID = null;
+ PoolImpl.IS_INSTANTIATOR_CALLBACK = false;
+ DataSerializerPropagationDUnitTest.closeCache();
+ }
+
@Override
public final void preTearDown() throws Exception {
try {
// close the clients first
- client1.invoke(() -> DataSerializerPropagationDUnitTest.closeCache());
- client2.invoke(() -> DataSerializerPropagationDUnitTest.closeCache());
- closeCache();
+ client1.invoke(this::tearDownForVM);
+ client2.invoke(this::tearDownForVM);
+ tearDownForVM();
- server1.invoke(() -> DataSerializerPropagationDUnitTest.closeCache());
- server2.invoke(() -> DataSerializerPropagationDUnitTest.closeCache());
+ server1.invoke(this::tearDownForVM);
+ server2.invoke(this::tearDownForVM);
client1 = null;
client2 = null;
server1 = null;
+ server2 = null;
} finally {
TestDataSerializer.successfullyInstantiated = false;
@@ -386,12 +398,8 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
}
}
- /**
- * Test's same eventId being same for the dataserializers at all clients & servers
- *
- */
@Test
- public void testDataSerializersEventIdVerificationClientsAndServers() throws Exception {
+ public void registerDataSerializerGetsPropagatedToAnotherClient() throws Exception {
PORT1 = initServerCache(server1);
PORT2 = initServerCache(server2);
@@ -404,10 +412,9 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
registerDataSerializer(DSObject1.class);
- Boolean pass = client2.invoke(DataSerializerPropagationDUnitTest::verifyResult);
- assertTrue("EventId found Different", pass);
-
- PoolImpl.IS_INSTANTIATOR_CALLBACK = false;
+ assertNotNull(eventId);
+ Awaitility.await("event propagates to client 2").until(() -> assertEquals(eventId,
+ client2.invoke(DataSerializerPropagationDUnitTest::getObservedEventID)));
}
@Test
@@ -520,12 +527,6 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
assertEquals(expected, actual);
}
- private static Boolean verifyResult() {
- boolean temp = testEventIDResult;
- testEventIDResult = false;
- return new Boolean(temp);
- }
-
private static Integer createServerCache() throws Exception {
new DataSerializerPropagationDUnitTest().createCache(new Properties());
AttributesFactory factory = new AttributesFactory();
@@ -549,25 +550,16 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
@Override
public void beforeSendingToServer(EventID eventID) {
eventId = eventID;
- client2.invoke(() -> DataSerializerPropagationDUnitTest.setEventId(eventID));
}
});
}
- /**
- * sets the EventId value in the VM
- *
- */
- public static void setEventId(EventID eventID) {
- eventId = eventID;
- }
-
private static void setClientServerObserver2() {
PoolImpl.IS_INSTANTIATOR_CALLBACK = true;
ClientServerObserverHolder.setInstance(new ClientServerObserverAdapter() {
@Override
public void afterReceivingFromServer(EventID eventID) {
- testEventIDResult = eventID.equals(eventId);
+ observedEventID = eventID;
}
});
}