You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by es...@apache.org on 2019/08/12 22:10:19 UTC

[geode] branch feature/GEODE-7080 updated: GEODE-7080: Do not add removed entry into offline export file.

This is an automated email from the ASF dual-hosted git repository.

eshu11 pushed a commit to branch feature/GEODE-7080
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-7080 by this push:
     new 97926d3  GEODE-7080: Do not add removed entry into offline export file.
97926d3 is described below

commit 97926d3dc61821b71c8315dd976c6ed0f551f0d2
Author: eshu <es...@pivotal.io>
AuthorDate: Mon Aug 12 15:07:01 2019 -0700

    GEODE-7080: Do not add removed entry into offline export file.
    
      Co-authored-by: Donal Evans doevans@pivotal.io
---
 .../geode/internal/cache/OfflineSnapshotJUnitTest.java       | 12 +++++++++++-
 .../java/org/apache/geode/internal/cache/DiskStoreImpl.java  |  4 +++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OfflineSnapshotJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OfflineSnapshotJUnitTest.java
index 9e5987c..e9171b4 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OfflineSnapshotJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OfflineSnapshotJUnitTest.java
@@ -51,8 +51,8 @@ public class OfflineSnapshotJUnitTest {
         Region<Integer, MyObject> region =
             rgen.createRegion(cache, ds.getName(), rt, "test" + rcount++);
         final Map<Integer, MyObject> expected = createExpected(st, 1000);
-
         region.putAll(expected);
+        removeAndInvalidateKeys(region, expected);
         cache.close();
 
         DiskStoreImpl.exportOfflineSnapshot(ds.getName(), new File[] {new File(".")},
@@ -65,6 +65,16 @@ public class OfflineSnapshotJUnitTest {
     }
   }
 
+  private void removeAndInvalidateKeys(Region<Integer, MyObject> region,
+      Map<Integer, MyObject> expected) {
+    int removed = 5;
+    int invalidated = 7;
+    region.destroy(removed);
+    region.invalidate(invalidated);
+    expected.remove(removed);
+    expected.put(7, null);
+  }
+
   @Test
   public void testLargeFileExport() throws Exception {
     int count = 10000;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index 0f76907..40a6890 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -3926,7 +3926,9 @@ public class DiskStoreImpl implements DiskStore {
             for (Map.Entry<Object, RecoveredEntry> re : entries.entrySet()) {
               Object key = re.getKey();
               Object value = re.getValue().getValue();
-              writer.snapshotEntry(new SnapshotRecord(key, value));
+              if (!Token.isRemoved(value)) {
+                writer.snapshotEntry(new SnapshotRecord(key, value));
+              }
             }
           }