You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/03/02 11:30:47 UTC
[10/50] [abbrv] ignite git commit: IGNITE-4663: BinaryMarshaller:
class is no longer required when object is unmarshalled to BinaryObject w/o
deserialization. This closes #1507.
IGNITE-4663: BinaryMarshaller: class is no longer required when object is unmarshalled to BinaryObject w/o deserialization. This closes #1507.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/85b08c5a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/85b08c5a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/85b08c5a
Branch: refs/heads/ignite-4565-ddl
Commit: 85b08c5a546d79535cb9178677832ff8233034fd
Parents: 7d3c046
Author: tledkov-gridgain <tl...@gridgain.com>
Authored: Tue Feb 14 16:18:45 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Tue Feb 14 16:18:45 2017 +0300
----------------------------------------------------------------------
.../ignite/internal/binary/BinaryUtils.java | 39 ++++++++++++++++++--
1 file changed, 36 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/85b08c5a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 2b55b6c..78bc31a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -1474,12 +1474,37 @@ public class BinaryUtils {
}
/**
- * @return Value.
+ * @param in Binary input stream.
+ * @param ctx Binary context.
+ * @param ldr Class loader.
+ * @return Class object specified at the input stream.
+ * @throws BinaryObjectException If failed.
*/
public static Class doReadClass(BinaryInputStream in, BinaryContext ctx, ClassLoader ldr)
throws BinaryObjectException {
+ return doReadClass(in, ctx, ldr, true);
+ }
+
+ /**
+ * @param in Binary input stream.
+ * @param ctx Binary context.
+ * @param ldr Class loader.
+ * @param deserialize Doesn't load the class when the flag is {@code false}. Class information is skipped.
+ * @return Class object specified at the input stream if {@code deserialize == true}. Otherwise returns {@code null}
+ * @throws BinaryObjectException If failed.
+ */
+ public static Class doReadClass(BinaryInputStream in, BinaryContext ctx, ClassLoader ldr, boolean deserialize)
+ throws BinaryObjectException {
int typeId = in.readInt();
+ if (!deserialize) {
+ // Skip class name at the stream.
+ if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID)
+ doReadClassName(in);
+
+ return null;
+ }
+
return doReadClass(in, ctx, ldr, typeId);
}
@@ -1531,8 +1556,12 @@ public class BinaryUtils {
}
/**
+ * @param in Binary input stream.
+ * @param ctx Binary context.
+ * @param ldr Class loader.
* @param typeId Type id.
- * @return Value.
+ * @return Class object specified at the input stream.
+ * @throws BinaryObjectException If failed.
*/
public static Class doReadClass(BinaryInputStream in, BinaryContext ctx, ClassLoader ldr, int typeId)
throws BinaryObjectException {
@@ -1896,6 +1925,10 @@ public class BinaryUtils {
}
/**
+ * @param in Binary input stream.
+ * @param ctx Binary context.
+ * @param ldr Class loader.
+ * @param handles Holder for handles.
* @param deserialize Deep flag.
* @return Value.
* @throws BinaryObjectException In case of error.
@@ -1904,7 +1937,7 @@ public class BinaryUtils {
BinaryReaderHandlesHolder handles, boolean deserialize) throws BinaryObjectException {
int hPos = positionForHandle(in);
- Class compType = doReadClass(in, ctx, ldr);
+ Class compType = doReadClass(in, ctx, ldr, deserialize);
int len = in.readInt();