This is an automated email from the ASF dual-hosted git repository.
eshu11 pushed a commit to branch feature/GEODE-7384
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-7384 by this
push:
new 010937a GEODE-7384: Members's old Persistent Member Id should be
removed
010937a is described below
commit 010937a1f32b14fde28d2b2418addcd389eadb8b
Author: Eric Shu <[email protected]>
AuthorDate: Wed Oct 30 16:13:00 2019 -0700
GEODE-7384: Members's old Persistent Member Id should be removed
* Always remove old Persistent Member Id if persisting its new Id.
---
.../cache/persistence/PersistenceAdvisorImpl.java | 6 ++----
.../cache/persistence/PersistenceAdvisorImplTest.java | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImpl.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImpl.java
index f83844d..a207ce0 100644
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImpl.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImpl.java
@@ -646,7 +646,7 @@ public class PersistenceAdvisorImpl implements
InternalPersistenceAdvisor {
}
}
- private void memberRemoved(PersistentMemberID id, boolean revoked) {
+ void memberRemoved(PersistentMemberID id, boolean revoked) {
if (logger.isDebugEnabled(LogMarker.PERSIST_ADVISOR_VERBOSE)) {
logger.debug(LogMarker.PERSIST_ADVISOR_VERBOSE, "{}-{}: Member removed.
persistentID={}",
shortDiskStoreId(), regionPath, id);
@@ -758,9 +758,7 @@ public class PersistenceAdvisorImpl implements
InternalPersistenceAdvisor {
// The oldId and newId could be the same if the member is retrying a
GII. See bug #42051
if (oldId != null && !oldId.equals(newId)) {
- if (initialized) {
- memberRemoved(oldId, false);
- }
+ memberRemoved(oldId, false);
}
}
}
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImplTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImplTest.java
index fd2fe2c..486cf5c 100644
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImplTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/persistence/PersistenceAdvisorImplTest.java
@@ -17,7 +17,10 @@ package org.apache.geode.internal.cache.persistence;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Arrays;
@@ -236,4 +239,19 @@ public class PersistenceAdvisorImplTest {
UUID uuid = new UUID(diskStoreIDIndex++, diskStoreIDIndex++);
return new DiskStoreID(uuid);
}
+
+ @Test
+ public void prepareNewMemberRemovesOldPersistentMemberId() {
+ InternalDistributedMember sender = mock(InternalDistributedMember.class);
+ PersistentMemberID oldId = mock(PersistentMemberID.class);
+ PersistentMemberID newId = mock(PersistentMemberID.class);
+ when(cacheDistributionAdvisor.containsId(sender)).thenReturn(true);
+ PersistenceAdvisorImpl spy = spy(persistenceAdvisorImpl);
+ doNothing().when(spy).memberRemoved(oldId, false);
+
+ spy.prepareNewMember(sender, oldId, newId);
+
+ verify(persistentMemberView).memberOnline(newId);
+ verify(spy).memberRemoved(oldId, false);
+ }
}