You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/11/05 04:28:38 UTC

[46/66] [abbrv] ignite git commit: IGNITE-1282: Fixed incorrect metadata resolution for MAP_ENTRY type.

IGNITE-1282: Fixed incorrect metadata resolution for MAP_ENTRY type.


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

Branch: refs/heads/ignite-1753-1282
Commit: 6eb314e75c63fad4985fa0ef89f285fd2a287291
Parents: f7fdc18
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Nov 4 11:16:31 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Nov 4 11:16:31 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/portable/PortableUtils.java   |  3 ++-
 .../portable/builder/PortableBuilderImpl.java     | 18 +++++++++++-------
 .../CacheObjectPortableProcessorImpl.java         |  4 ++++
 3 files changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6eb314e7/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableUtils.java
index 4e3538c..e0368b6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableUtils.java
@@ -65,6 +65,7 @@ import static org.apache.ignite.internal.portable.GridPortableMarshaller.INT_ARR
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.LONG;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.LONG_ARR;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.MAP;
+import static org.apache.ignite.internal.portable.GridPortableMarshaller.MAP_ENTRY;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.NULL;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.OBJ;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.OBJ_ARR;
@@ -464,7 +465,7 @@ public class PortableUtils {
             return MAP;
 
         if (Map.Entry.class.isAssignableFrom(cls))
-            return MAP;
+            return MAP_ENTRY;
 
         return OBJ;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/6eb314e7/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/PortableBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/PortableBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/PortableBuilderImpl.java
index d7ec6b3..89bb3ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/PortableBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/builder/PortableBuilderImpl.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.portable.builder;
 
+import org.apache.ignite.internal.portable.GridPortableMarshaller;
 import org.apache.ignite.internal.portable.PortableContext;
 import org.apache.ignite.internal.portable.PortableObjectImpl;
 import org.apache.ignite.internal.portable.PortableObjectOffheapImpl;
@@ -245,7 +246,7 @@ public class PortableBuilderImpl implements PortableBuilder {
                     int fieldId = reader.readIntPositioned(footerPos);
                     int fieldLen = fieldPositionAndLength(footerPos, footerEnd, rawPos, fieldOffsetSize).get2();
 
-                    int postLen = reader.position() + fieldLen; // Position where reader will be placed afterwards.
+                    int postPos = reader.position() + fieldLen; // Position where reader will be placed afterwards.
 
                     footerPos += 4 + fieldOffsetSize;
 
@@ -276,7 +277,7 @@ public class PortableBuilderImpl implements PortableBuilder {
                             else if (readCache == null) {
                                 val = reader.parseValue();
 
-                                assert reader.position() == postLen;
+                                assert reader.position() == postPos;
                             }
                             else
                                 val = readCache.get(fieldId);
@@ -285,7 +286,7 @@ public class PortableBuilderImpl implements PortableBuilder {
                         }
                     }
 
-                    reader.position(postLen);
+                    reader.position(postPos);
                 }
             }
 
@@ -336,15 +337,18 @@ public class PortableBuilderImpl implements PortableBuilder {
                                 newFldsMetadata = new HashMap<>();
 
                             newFldsMetadata.put(name, newFldTypeName);
-                        } else {
-                            if (!"Object".equals(oldFldTypeName) && !oldFldTypeName.equals(newFldTypeName)) {
+                        }
+                        else {
+                            String objTypeName =
+                                CacheObjectPortableProcessorImpl.FIELD_TYPE_NAMES[GridPortableMarshaller.OBJ];
+
+                            if (!objTypeName.equals(oldFldTypeName) && !oldFldTypeName.equals(newFldTypeName)) {
                                 throw new PortableException(
                                     "Wrong value has been set [" +
                                         "typeName=" + (typeName == null ? metadata.typeName() : typeName) +
                                         ", fieldName=" + name +
                                         ", fieldType=" + oldFldTypeName +
-                                        ", assignedValueType=" + newFldTypeName +
-                                        ", assignedValue=" + (((PortableValueWithType) val).value()) + ']'
+                                        ", assignedValueType=" + newFldTypeName + ']'
                                 );
                             }
                         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/6eb314e7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectPortableProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectPortableProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectPortableProcessorImpl.java
index 04c1e69..083fec9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectPortableProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectPortableProcessorImpl.java
@@ -95,6 +95,7 @@ import static org.apache.ignite.internal.portable.GridPortableMarshaller.BYTE;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.BYTE_ARR;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.CHAR;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.CHAR_ARR;
+import static org.apache.ignite.internal.portable.GridPortableMarshaller.CLASS;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.COL;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.DATE;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.DATE_ARR;
@@ -111,6 +112,7 @@ import static org.apache.ignite.internal.portable.GridPortableMarshaller.INT_ARR
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.LONG;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.LONG_ARR;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.MAP;
+import static org.apache.ignite.internal.portable.GridPortableMarshaller.MAP_ENTRY;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.OBJ;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.OBJ_ARR;
 import static org.apache.ignite.internal.portable.GridPortableMarshaller.PORTABLE_OBJ;
@@ -198,6 +200,8 @@ public class CacheObjectPortableProcessorImpl extends IgniteCacheObjectProcessor
         FIELD_TYPE_NAMES[PORTABLE_OBJ] = "Object";
         FIELD_TYPE_NAMES[COL] = "Collection";
         FIELD_TYPE_NAMES[MAP] = "Map";
+        FIELD_TYPE_NAMES[MAP_ENTRY] = "Entry";
+        FIELD_TYPE_NAMES[CLASS] = "Class";
         FIELD_TYPE_NAMES[BYTE_ARR] = "byte[]";
         FIELD_TYPE_NAMES[SHORT_ARR] = "short[]";
         FIELD_TYPE_NAMES[INT_ARR] = "int[]";