IGNITE-8503 Fix wrong GridCacheMapEntry startVersion initialization. - Fixes 
#4141.

Signed-off-by: Dmitriy Pavlov <dpav...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2dca70dc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2dca70dc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2dca70dc

Branch: refs/heads/ignite-8446
Commit: 2dca70dc135e1b3820c84e0e0ec788434d75c9c6
Parents: 417d31d
Author: Andrey V. Mashenkov <andrey.mashen...@gmail.com>
Authored: Fri Jun 22 17:19:48 2018 +0300
Committer: Dmitriy Pavlov <dpav...@apache.org>
Committed: Fri Jun 22 17:19:48 2018 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheEntryEx.java       |  5 -----
 .../processors/cache/GridCacheMapEntry.java      | 19 ++++---------------
 .../cache/version/GridCacheVersionManager.java   |  3 +++
 .../processors/cache/GridCacheTestEntryEx.java   |  5 -----
 4 files changed, 7 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2dca70dc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
index 6cddb2d..fc374bb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
@@ -99,11 +99,6 @@ public interface GridCacheEntryEx {
     public int partition();
 
     /**
-     * @return Start version.
-     */
-    public long startVersion();
-
-    /**
      * @return Key.
      */
     public KeyCacheObject key();

http://git-wip-us.apache.org/repos/asf/ignite/blob/2dca70dc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 767c314..faf4460 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -61,6 +61,7 @@ import 
org.apache.ignite.internal.processors.cache.version.GridCacheLazyPlainVer
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
 import 
org.apache.ignite.internal.processors.cache.version.GridCacheVersionConflictContext;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersionEx;
+import 
org.apache.ignite.internal.processors.cache.version.GridCacheVersionManager;
 import 
org.apache.ignite.internal.processors.cache.version.GridCacheVersionedEntryEx;
 import org.apache.ignite.internal.processors.dr.GridDrType;
 import 
org.apache.ignite.internal.processors.query.schema.SchemaIndexCacheFilter;
@@ -141,10 +142,6 @@ public abstract class GridCacheMapEntry extends 
GridMetadataAwareAdapter impleme
     @GridToStringInclude
     protected CacheObject val;
 
-    /** Start version. */
-    @GridToStringInclude
-    protected final long startVer;
-
     /** Version. */
     @GridToStringInclude
     protected GridCacheVersion ver;
@@ -190,14 +187,7 @@ public abstract class GridCacheMapEntry extends 
GridMetadataAwareAdapter impleme
         this.hash = key.hashCode();
         this.cctx = cctx;
 
-        ver = cctx.versions().next();
-
-        startVer = ver.order();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long startVersion() {
-        return startVer;
+        ver = GridCacheVersionManager.START_VER;
     }
 
     /**
@@ -302,7 +292,7 @@ public abstract class GridCacheMapEntry extends 
GridMetadataAwareAdapter impleme
      * @return {@code True} if start version.
      */
     public boolean isStartVersion() {
-        return ver.nodeOrder() == cctx.localNode().order() && ver.order() == 
startVer;
+        return ver == GridCacheVersionManager.START_VER;
     }
 
     /** {@inheritDoc} */
@@ -2734,8 +2724,7 @@ public abstract class GridCacheMapEntry extends 
GridMetadataAwareAdapter impleme
 
                     GridCacheVersion currentVer = row != null ? row.version() 
: GridCacheMapEntry.this.ver;
 
-                    boolean isStartVer = currentVer.nodeOrder() == 
cctx.localNode().order()
-                        && currentVer.order() == startVer;
+                    boolean isStartVer = currentVer == 
GridCacheVersionManager.START_VER;
 
                     if (cctx.group().persistenceEnabled()) {
                         if (!isStartVer) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/2dca70dc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
index 269925d..df8af48 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
@@ -41,6 +41,9 @@ public class GridCacheVersionManager extends 
GridCacheSharedManagerAdapter {
     /** */
     public static final GridCacheVersion EVICT_VER = new 
GridCacheVersion(Integer.MAX_VALUE, 0, 0, 0);
 
+    /** */
+    public static final GridCacheVersion START_VER = new GridCacheVersion(0, 
0, 0, 0);
+
     /** Timestamp used as base time for cache topology version (January 1, 
2014). */
     public static final long TOP_VER_BASE_TIME = 1388520000000L;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/2dca70dc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index e40700d..daf96c4 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@ -854,11 +854,6 @@ public class GridCacheTestEntryEx extends 
GridMetadataAwareAdapter implements Gr
     }
 
     /** {@inheritDoc} */
-    @Override public long startVersion() {
-        return 0;
-    }
-
-    /** {@inheritDoc} */
     @Nullable @Override public CacheObject peek(boolean heap,
         boolean offheap,
         AffinityTopologyVersion topVer,

Reply via email to