Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-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 E5290175FD for ; Tue, 22 Sep 2015 14:58:49 +0000 (UTC) Received: (qmail 79255 invoked by uid 500); 22 Sep 2015 14:58:44 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 79163 invoked by uid 500); 22 Sep 2015 14:58:44 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 78730 invoked by uid 99); 22 Sep 2015 14:58:44 -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, 22 Sep 2015 14:58:44 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 98161E03FA; Tue, 22 Sep 2015 14:58:44 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: vozerov@apache.org To: commits@ignite.apache.org Date: Tue, 22 Sep 2015 14:58:58 -0000 Message-Id: In-Reply-To: <60f08afac2474cc8ac2760ba5902c0b6@git.apache.org> References: <60f08afac2474cc8ac2760ba5902c0b6@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [15/22] ignite git commit: ignite-973 - fix ignite-973 - fix Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f0be45e3 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f0be45e3 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f0be45e3 Branch: refs/heads/ignite-1282 Commit: f0be45e309f9a594334209a251c069f9ba3db120 Parents: e51fb42 Author: S.Vladykin Authored: Tue Sep 22 13:36:40 2015 +0300 Committer: S.Vladykin Committed: Tue Sep 22 13:36:40 2015 +0300 ---------------------------------------------------------------------- .../query/h2/opt/GridH2AbstractKeyValueRow.java | 3 +++ .../internal/processors/query/h2/opt/GridH2Table.java | 10 +++++++++- .../internal/processors/cache/CacheIndexStreamerTest.java | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f0be45e3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java index 07c49a5..4a16284 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java @@ -119,6 +119,9 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row { * @throws IgniteCheckedException If failed. */ public synchronized void onUnswap(Object val, boolean beforeRmv) throws IgniteCheckedException { + if (peekValue(VAL_COL) != null) + return; + setValue(VAL_COL, desc.wrap(val, desc.valueType())); notifyAll(); http://git-wip-us.apache.org/repos/asf/ignite/blob/f0be45e3/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java index 66241b4..bf318b2 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java @@ -55,6 +55,8 @@ import org.h2.value.Value; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; +import static org.apache.ignite.internal.processors.query.h2.opt.GridH2AbstractKeyValueRow.VAL_COL; + /** * H2 Table implementation. */ @@ -372,6 +374,12 @@ public class GridH2Table extends TableBase { if (!del) { GridH2Row old = pk.put(row); // Put to PK. + if (old instanceof GridH2AbstractKeyValueRow) { // Unswap value on replace. + GridH2AbstractKeyValueRow kvOld = (GridH2AbstractKeyValueRow)old; + + kvOld.onUnswap(kvOld.getValue(VAL_COL), true); + } + int len = idxs.size(); int i = 1; @@ -399,7 +407,7 @@ public class GridH2Table extends TableBase { GridH2Row old = pk.remove(row); if (old instanceof GridH2AbstractKeyValueRow) { // Unswap value. - Value v = row.getValue(GridH2AbstractKeyValueRow.VAL_COL); + Value v = row.getValue(VAL_COL); if (v != null) ((GridH2AbstractKeyValueRow)old).onUnswap(v.getObject(), true); http://git-wip-us.apache.org/repos/asf/ignite/blob/f0be45e3/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIndexStreamerTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIndexStreamerTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIndexStreamerTest.java index 25c3b81..23f4e91 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIndexStreamerTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheIndexStreamerTest.java @@ -31,7 +31,7 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; -import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi; +import org.apache.ignite.spi.swapspace.inmemory.GridTestSwapSpaceSpi; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; @@ -52,7 +52,7 @@ public class CacheIndexStreamerTest extends GridCommonAbstractTest { ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder); - cfg.setSwapSpaceSpi(new FileSwapSpaceSpi()); + cfg.setSwapSpaceSpi(new GridTestSwapSpaceSpi()); return cfg; }