IGNITE-1819: WIP.

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

Branch: refs/heads/ignite-1819
Commit: fceec8fcf208466714f9a3710407021caf4fa83e
Parents: 47d2589
Author: vozerov-gridgain <[email protected]>
Authored: Thu Nov 5 13:57:26 2015 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Thu Nov 5 13:57:26 2015 +0300

----------------------------------------------------------------------
 .../portable/PortableClassDescriptor.java       |  7 +++
 .../internal/portable/PortableContext.java      |  8 ---
 .../internal/portable/PortableWriterExImpl.java |  3 +-
 .../portable/builder/PortableBuilderImpl.java   | 61 +++++++++-----------
 4 files changed, 35 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/fceec8fc/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
index aa72017..ba85f8c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableClassDescriptor.java
@@ -274,6 +274,13 @@ public class PortableClassDescriptor {
     }
 
     /**
+     * @return User type flag.
+     */
+    public boolean userType() {
+        return userType;
+    }
+
+    /**
      * @return Fields meta data.
      */
     Map<String, String> fieldsMeta() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/fceec8fc/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java
index fddca6f..1986625 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java
@@ -783,14 +783,6 @@ public class PortableContext implements Externalizable {
 
     /**
      * @param typeId Type ID.
-     * @return Whether meta data is enabled.
-     */
-    public boolean isMetaDataEnabled(int typeId) {
-        return true;
-    }
-
-    /**
-     * @param typeId Type ID.
      * @param metaHashSum Meta data hash sum.
      * @return Whether meta is changed.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/fceec8fc/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
index 542c897..30e3465 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
@@ -272,8 +272,7 @@ public class PortableWriterExImpl implements 
PortableWriter, PortableRawWriterEx
         }
 
         typeId = desc.typeId();
-
-        metaEnabled = ctx.isMetaDataEnabled(typeId);
+        metaEnabled = desc.userType();
 
         desc.write(obj, this);
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/fceec8fc/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 89bb3ff..2f7c9be 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
@@ -291,12 +291,7 @@ public class PortableBuilderImpl implements 
PortableBuilder {
             }
 
             if (assignedVals != null && (remainsFlds == null || 
!remainsFlds.isEmpty())) {
-                boolean metadataEnabled = ctx.isMetaDataEnabled(typeId);
-
-                PortableMetadata metadata = null;
-
-                if (metadataEnabled)
-                    metadata = ctx.metaData(typeId);
+                PortableMetadata metadata = ctx.metaData(typeId);
 
                 Map<String, String> newFldsMetadata = null;
 
@@ -317,40 +312,38 @@ public class PortableBuilderImpl implements 
PortableBuilder {
 
                     serializer.writeValue(writer, val);
 
-                    if (metadataEnabled) {
-                        String oldFldTypeName = metadata == null ? null : 
metadata.fieldTypeName(name);
+                    String oldFldTypeName = metadata == null ? null : 
metadata.fieldTypeName(name);
 
-                        String newFldTypeName;
+                    String newFldTypeName;
 
-                        if (val instanceof PortableValueWithType)
-                            newFldTypeName = ((PortableValueWithType) 
val).typeName();
-                        else {
-                            byte type = 
PortableUtils.typeByClass(val.getClass());
+                    if (val instanceof PortableValueWithType)
+                        newFldTypeName = ((PortableValueWithType) 
val).typeName();
+                    else {
+                        byte type = PortableUtils.typeByClass(val.getClass());
 
-                            newFldTypeName = 
CacheObjectPortableProcessorImpl.fieldTypeName(type);
-                        }
+                        newFldTypeName = 
CacheObjectPortableProcessorImpl.fieldTypeName(type);
+                    }
 
-                        if (oldFldTypeName == null) {
-                            // It's a new field, we have to add it to metadata.
+                    if (oldFldTypeName == null) {
+                        // It's a new field, we have to add it to metadata.
 
-                            if (newFldsMetadata == null)
-                                newFldsMetadata = new HashMap<>();
+                        if (newFldsMetadata == null)
+                            newFldsMetadata = new HashMap<>();
 
-                            newFldsMetadata.put(name, 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 + ']'
-                                );
-                            }
+                        newFldsMetadata.put(name, 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 + 
']'
+                            );
                         }
                     }
                 }

Reply via email to