Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-1895 293a56eb9 -> 2162effc8


removed unneeded OffHeapRegionEntry references


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/0db1dc88
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/0db1dc88
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/0db1dc88

Branch: refs/heads/feature/GEODE-1895
Commit: 0db1dc885ebc2dd66c55a86d4e68df716d7e0e28
Parents: 293a56e
Author: Darrel Schneider <dschnei...@pivotal.io>
Authored: Wed Nov 9 16:52:32 2016 -0800
Committer: Darrel Schneider <dschnei...@pivotal.io>
Committed: Wed Nov 9 16:52:32 2016 -0800

----------------------------------------------------------------------
 .../geode/internal/cache/AbstractRegionEntry.java  |  8 +++-----
 .../geode/internal/cache/AbstractRegionMap.java    | 17 +++++------------
 .../geode/internal/cache/EntryEventImpl.java       |  2 +-
 3 files changed, 9 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0db1dc88/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
index 41ca8d0..27848e1 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
@@ -452,7 +452,7 @@ public abstract class AbstractRegionEntry implements 
RegionEntry, HashEntry<Obje
   public void 
releaseOffHeapRefIfRegionBeingClosedOrDestroyed(RegionEntryContext context,
       Object ref) {
     if (isOffHeapReference(ref) && 
isThisRegionBeingClosedOrDestroyed(context)) {
-      ((OffHeapRegionEntry) this).release();
+      release();
     }
   }
 
@@ -462,8 +462,8 @@ public abstract class AbstractRegionEntry implements 
RegionEntry, HashEntry<Obje
   }
 
   private boolean isOffHeapReference(Object ref) {
-    return ref != Token.REMOVED_PHASE1 && this instanceof OffHeapRegionEntry
-        && ref instanceof StoredObject && ((StoredObject) ref).hasRefCount();
+    return ref != Token.REMOVED_PHASE1 && ref instanceof StoredObject
+        && ((StoredObject) ref).hasRefCount();
   }
 
   /**
@@ -1180,8 +1180,6 @@ public abstract class AbstractRegionEntry implements 
RegionEntry, HashEntry<Obje
     if (v instanceof DiskEntry.RecoveredEntry)
       return false; // The disk layer has special logic that ends up storing 
the nested value in the
                     // RecoveredEntry off heap
-    if (!(e instanceof OffHeapRegionEntry))
-      return false;
     // TODO should we check for deltas here or is that a user error?
     return true;
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0db1dc88/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
index de05b0d..86c25c0 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
@@ -234,14 +234,14 @@ public abstract class AbstractRegionMap implements 
RegionMap {
 
   public final RegionEntry putEntryIfAbsent(Object key, RegionEntry re) {
     RegionEntry oldRe = (RegionEntry) _getMap().putIfAbsent(key, re);
-    if (oldRe == null && (re instanceof OffHeapRegionEntry) && 
_isOwnerALocalRegion()
+    if (oldRe == null && _isOwnerALocalRegion() && _getOwner().getOffHeap()
         && _getOwner().isThisRegionBeingClosedOrDestroyed()) {
       // prevent orphan during concurrent destroy (#48068)
       Object v = re._getValue();
       if (v != Token.REMOVED_PHASE1 && v != Token.REMOVED_PHASE2 && v 
instanceof StoredObject
           && ((StoredObject) v).hasRefCount()) {
         if (_getMap().remove(key, re)) {
-          ((OffHeapRegionEntry) re).release();
+          re.release();
         }
       }
     }
@@ -573,9 +573,7 @@ public abstract class AbstractRegionMap implements 
RegionMap {
           lruEntryUpdate(newRe);
         } finally {
           OffHeapHelper.release(value);
-          if (oldRe instanceof OffHeapRegionEntry) {
-            ((OffHeapRegionEntry) oldRe).release();
-          }
+          oldRe.release();
         }
         lruUpdateCallback();
       }
@@ -647,10 +645,7 @@ public abstract class AbstractRegionMap implements 
RegionMap {
            * and throw an exception.
            */
           else {
-            if (newRe instanceof OffHeapRegionEntry) {
-              ((OffHeapRegionEntry) newRe).release();
-            }
-
+            newRe.release();
             throw new IllegalStateException(
                 "Could not recover entry for key " + key + ".  The entry 
already exists!");
           }
@@ -2632,9 +2627,7 @@ public abstract class AbstractRegionMap implements 
RegionMap {
     retVal = getEntryFactory().createEntry((RegionEntryContext) ownerRegion, 
key, value);
     RegionEntry oldRe = putEntryIfAbsent(key, retVal);
     if (oldRe != null) {
-      if (retVal instanceof OffHeapRegionEntry) {
-        ((OffHeapRegionEntry) retVal).release();
-      }
+      retVal.release();
       return oldRe;
     }
     return retVal;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/0db1dc88/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
index 02c0422..ea95b73 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
@@ -1630,7 +1630,7 @@ public class EntryEventImpl
       reentry.setValueWithTombstoneCheck(v, this); // already called 
prepareValueForCache
       success = true;
     } finally {
-      if (!success && reentry instanceof OffHeapRegionEntry && v instanceof 
StoredObject) {
+      if (!success && owner.getOffHeap() && v instanceof StoredObject) {
         OffHeapRegionEntryHelper.releaseEntry((OffHeapRegionEntry) reentry, 
(StoredObject) v);
       }
     }

Reply via email to