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());
}