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); } }