You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/09/04 02:21:46 UTC

ignite git commit: IGNITE-264 - Moved fixes to portable context.

Repository: ignite
Updated Branches:
  refs/heads/ignite-264 637afb75b -> 1124dee42


IGNITE-264 - Moved fixes to portable context.


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

Branch: refs/heads/ignite-264
Commit: 1124dee4282b4e0d7143cffa421d7c3ff7316271
Parents: 637afb7
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Sep 3 17:21:38 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Sep 3 17:21:38 2015 -0700

----------------------------------------------------------------------
 .../internal/portable/PortableContext.java      | 25 ++++++++------------
 1 file changed, 10 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1124dee4/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 db7e41e..731c33f 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
@@ -433,7 +433,7 @@ public class PortableContext implements Externalizable {
         PortableClassDescriptor desc = descByCls.get(cls);
 
         if (desc == null || !desc.isRegistered())
-            desc = registerClassDescriptor(cls);
+            desc = registerClassDescriptor(cls, true);
 
         return desc;
     }
@@ -467,7 +467,7 @@ public class PortableContext implements Externalizable {
         }
 
         if (desc == null) {
-            desc = registerClassDescriptor(cls);
+            desc = registerClassDescriptor(cls, false);
 
             assert desc.typeId() == typeId;
         }
@@ -481,7 +481,7 @@ public class PortableContext implements Externalizable {
      * @param cls Class.
      * @return Class descriptor.
      */
-    private PortableClassDescriptor registerClassDescriptor(Class<?> cls) {
+    private PortableClassDescriptor registerClassDescriptor(Class<?> cls, boolean registerMetadata) {
         PortableClassDescriptor desc;
 
         String clsName = cls.getName();
@@ -504,7 +504,7 @@ public class PortableContext implements Externalizable {
                 desc = old;
         }
         else
-            desc = registerUserClassDescriptor(cls);
+            desc = registerUserClassDescriptor(cls, registerMetadata);
 
         return desc;
     }
@@ -515,9 +515,7 @@ public class PortableContext implements Externalizable {
      * @param cls Class.
      * @return Class descriptor.
      */
-    private PortableClassDescriptor registerUserClassDescriptor(Class<?> cls) {
-        PortableClassDescriptor desc;
-
+    private PortableClassDescriptor registerUserClassDescriptor(Class<?> cls, boolean registerMetadata) {
         boolean registered;
 
         String typeName = typeName(cls.getName());
@@ -533,7 +531,7 @@ public class PortableContext implements Externalizable {
             throw new PortableException("Failed to register class.", e);
         }
 
-        desc = new PortableClassDescriptor(this,
+        PortableClassDescriptor desc = new PortableClassDescriptor(this,
             cls,
             true,
             typeId,
@@ -549,6 +547,9 @@ public class PortableContext implements Externalizable {
         userTypes.put(typeId, desc);
         descByCls.put(cls, desc);
 
+        if (registerMetadata && isMetaDataEnabled(typeId))
+            metaHnd.addMeta(typeId, new PortableMetaDataImpl(typeName, desc.fieldsMeta(), null));
+
         return desc;
     }
 
@@ -612,13 +613,7 @@ public class PortableContext implements Externalizable {
         if (predefinedClasses.contains(cls))
             return new Type(DFLT_ID_MAPPER.typeId(typeName(clsName)), true);
 
-        PortableClassDescriptor desc = descByCls.get(cls);
-
-        boolean registered = desc != null && desc.isRegistered();
-
-        if (!registered)
-            // forces to register the class and fill up all required data structures
-            desc = registerUserClassDescriptor(cls);
+        PortableClassDescriptor desc = descriptorForClass(cls);
 
         return new Type(desc.typeId(), desc.isRegistered());
     }