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/16 21:47:19 UTC

[geode] branch release/1.10.0 updated: GEODE-7080: Do not add removed entry into offline export file. (#3912)

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

eshu11 pushed a commit to branch release/1.10.0
in repository https://gitbox.apache.org/repos/asf/geode.git


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

commit fbe8ef58abd1b9cd73eb1fd4b47a08f8c4aa5515
Author: Eric Shu <es...@pivotal.io>
AuthorDate: Tue Aug 13 14:44:51 2019 -0700

    GEODE-7080: Do not add removed entry into offline export file. (#3912)
    
    * GEODE-7080: Do not add removed entry into offline export file.
    
      Co-authored-by: Donal Evans doevans@pivotal.io
    
      (cherry picked from commit aa33060fd099254b08a659e9d8267a9b3c236b91)
---
 .../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));
+              }
             }
           }