Return-Path: X-Original-To: apmail-geode-commits-archive@minotaur.apache.org Delivered-To: apmail-geode-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0689E1934F for ; Tue, 5 Apr 2016 21:47:46 +0000 (UTC) Received: (qmail 24785 invoked by uid 500); 5 Apr 2016 21:47:45 -0000 Delivered-To: apmail-geode-commits-archive@geode.apache.org Received: (qmail 24754 invoked by uid 500); 5 Apr 2016 21:47:45 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 24743 invoked by uid 99); 5 Apr 2016 21:47:45 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Apr 2016 21:47:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 792D8C0227 for ; Tue, 5 Apr 2016 21:47:45 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.221 X-Spam-Level: X-Spam-Status: No, score=-3.221 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id ax6vkvB1nMmZ for ; Tue, 5 Apr 2016 21:47:43 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with SMTP id 461725F1B3 for ; Tue, 5 Apr 2016 21:47:43 +0000 (UTC) Received: (qmail 24735 invoked by uid 99); 5 Apr 2016 21:47:42 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Apr 2016 21:47:42 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 94E52DFC72; Tue, 5 Apr 2016 21:47:42 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dschneider@apache.org To: commits@geode.incubator.apache.org Message-Id: <3ce48cae8ac04029bbfc397bfb78cbe9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: incubator-geode git commit: GEODE-1167: check off-heap flag to see if recovered region is compatible Date: Tue, 5 Apr 2016 21:47:42 +0000 (UTC) Repository: incubator-geode Updated Branches: refs/heads/develop 226713433 -> a11f6089b GEODE-1167: check off-heap flag to see if recovered region is compatible Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/a11f6089 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/a11f6089 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/a11f6089 Branch: refs/heads/develop Commit: a11f6089b015070c5420670bebfe7f634a134db6 Parents: 2267134 Author: Darrel Schneider Authored: Mon Apr 4 16:48:10 2016 -0700 Committer: Darrel Schneider Committed: Tue Apr 5 14:45:32 2016 -0700 ---------------------------------------------------------------------- .../gemfire/internal/cache/DiskRegion.java | 1 + .../internal/offheap/OffHeapRegionBase.java | 31 ++++++++++++++++++++ 2 files changed, 32 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a11f6089/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/DiskRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/DiskRegion.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/DiskRegion.java index 843a716..c1d2f03 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/DiskRegion.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/cache/DiskRegion.java @@ -165,6 +165,7 @@ public class DiskRegion extends AbstractDiskRegion { || ra.getInitialCapacity() != getInitialCapacity() || ra.getLoadFactor() != getLoadFactor() || ra.getStatisticsEnabled() != getStatisticsEnabled() + || offHeap != getOffHeap() || !hasSameCompressor(ra)) { if (getRecoveredEntryMap() != null) { getRecoveredEntryMap().lruCloseStats(); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/a11f6089/geode-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapRegionBase.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapRegionBase.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapRegionBase.java index 25e69de..a820619 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapRegionBase.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapRegionBase.java @@ -38,6 +38,9 @@ import com.gemstone.gemfire.compression.Compressor; import com.gemstone.gemfire.compression.SnappyCompressor; import com.gemstone.gemfire.internal.cache.EntryEventImpl; import com.gemstone.gemfire.internal.cache.GemFireCacheImpl; +import com.gemstone.gemfire.internal.cache.LocalRegion; +import com.gemstone.gemfire.internal.cache.OffHeapRegionEntry; +import com.gemstone.gemfire.internal.cache.RegionEntry; import com.gemstone.gemfire.internal.offheap.annotations.OffHeapIdentifier; import com.gemstone.gemfire.internal.offheap.annotations.Released; import com.gemstone.gemfire.internal.offheap.annotations.Retained; @@ -589,4 +592,32 @@ public abstract class OffHeapRegionBase { doRegionTest(RegionShortcut.PARTITION_PERSISTENT, "prPersist2", true); } + @Test + public void testPersistentChangeFromHeapToOffHeap() { + GemFireCacheImpl gfc = createCache(true); + Region r = null; + final String value = "value big enough to force off-heap storage"; + try { + r = gfc.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).setOffHeap(false).create("changedFromHeapToOffHeap"); + r.put("key", value); + } finally { + closeCache(gfc, false); + } + gfc = createCache(true); + try { + r = gfc.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).setOffHeap(true).create("changedFromHeapToOffHeap"); + assertEquals(true, r.containsKey("key")); + LocalRegion lr = (LocalRegion) r; + RegionEntry re = lr.getRegionEntry("key"); + if (!(re instanceof OffHeapRegionEntry)) { + fail("expected re to be instanceof OffHeapRegionEntry but it was a " + re.getClass()); + } + assertEquals(value, r.get("key")); + } finally { + if (r != null && !r.isDestroyed()) { + r.destroyRegion(); + } + closeCache(gfc, false); + } + } }