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 2015/12/22 07:52:16 UTC
ignite git commit: IGNITE-2225: Fixed unnecessary deserializations.
Repository: ignite
Updated Branches:
refs/heads/ignite-2225 [created] c234469d6
IGNITE-2225: Fixed unnecessary deserializations.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c234469d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c234469d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c234469d
Branch: refs/heads/ignite-2225
Commit: c234469d6da3e0a253b4df30c0830720f48e7b78
Parents: d8576b8
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Dec 22 09:53:10 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Dec 22 09:53:10 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/binary/GridBinaryMarshaller.java | 10 ++++++++++
.../cache/binary/CacheObjectBinaryProcessorImpl.java | 3 +++
2 files changed, 13 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c234469d/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
index b21c679..71ca018 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/GridBinaryMarshaller.java
@@ -268,6 +268,16 @@ public class GridBinaryMarshaller {
}
/**
+ * Whether object must be deserialized anyway. I.e. it cannot be converted to BinaryObject.
+ *
+ * @param obj Object.
+ * @return {@code True} if object will be deserialized on unmarshal.
+ */
+ public boolean mustDeserialize(Object obj) {
+ return obj != null && ctx.mustDeserialize(obj.getClass());
+ }
+
+ /**
* Gets writer for the given output stream.
*
* @param out Output stream.
http://git-wip-us.apache.org/repos/asf/ignite/blob/c234469d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index 6aee7a9..b335179 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@ -435,6 +435,9 @@ public class CacheObjectBinaryProcessorImpl extends IgniteCacheObjectProcessorIm
return new GridMapEntry<>(marshalToBinary(e.getKey()), marshalToBinary(e.getValue()));
}
+ if (binaryMarsh.mustDeserialize(obj))
+ return obj; // No need to go through marshal-unmarshal because result will be the same as initial object.
+
byte[] arr = binaryMarsh.marshal(obj);
assert arr.length > 0;