ignite-nio - Removing message clone

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

Branch: refs/heads/sprint-1
Commit: dcb4c70930787b74a0aa421982f3fac717e73ebc
Parents: f9f06c0
Author: Valentin Kulichenko <vkuliche...@gridgain.com>
Authored: Sat Feb 14 19:45:14 2015 -0800
Committer: Valentin Kulichenko <vkuliche...@gridgain.com>
Committed: Sat Feb 14 19:45:14 2015 -0800

----------------------------------------------------------------------
 .../CommunicationMessageCodeGenerator.java      |  8 ++-
 .../internal/direct/DirectByteBufferStream.java |  5 +-
 .../internal/direct/DirectMessageReader.java    |  4 +-
 .../distributed/GridDistributedLockRequest.java |  2 +-
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |  2 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |  4 +-
 .../distributed/near/GridNearLockRequest.java   |  4 +-
 .../distributed/near/GridNearLockResponse.java  |  4 +-
 .../communication/MessageAdapter.java           | 55 ++++++++------------
 .../extensions/communication/MessageReader.java |  3 +-
 10 files changed, 42 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java
----------------------------------------------------------------------
diff --git 
a/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java
 
b/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java
index 7ce89a7..a9846d1 100644
--- 
a/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java
+++ 
b/modules/codegen/src/main/java/org/apache/ignite/codegen/CommunicationMessageCodeGenerator.java
@@ -674,8 +674,12 @@ public class CommunicationMessageCodeGenerator {
         }
         else if (BASE_CLS.isAssignableFrom(type))
             returnFalseIfReadFailed(name, "reader.readMessage", field);
-        else if (type.isArray())
-            returnFalseIfReadFailed(name, "reader.readObjectArray", field, 
"Type." + typeEnum(type.getComponentType()));
+        else if (type.isArray()) {
+            Class<?> compType = type.getComponentType();
+
+            returnFalseIfReadFailed(name, "reader.readObjectArray", field, 
"Type." + typeEnum(compType),
+                compType.getSimpleName() + ".class");
+        }
         else if (Collection.class.isAssignableFrom(type) && 
!Set.class.isAssignableFrom(type)) {
             assert colItemType != null;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectByteBufferStream.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectByteBufferStream.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectByteBufferStream.java
index f503223..fed6a53 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectByteBufferStream.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectByteBufferStream.java
@@ -967,10 +967,11 @@ public class DirectByteBufferStream {
 
     /**
      * @param itemType Component type.
+     * @param itemCls Component class.
      * @return Array.
      */
     @SuppressWarnings("unchecked")
-    public <T> T[] readObjectArray(MessageAdapter.Type itemType) {
+    public <T> T[] readObjectArray(MessageAdapter.Type itemType, Class<T> 
itemCls) {
         if (readSize == -1) {
             int size = readInt();
 
@@ -982,7 +983,7 @@ public class DirectByteBufferStream {
 
         if (readSize >= 0) {
             if (objArr == null)
-                objArr = (Object[])Array.newInstance(itemType.clazz(), 
readSize);
+                objArr = (Object[])Array.newInstance(itemCls, readSize);
 
             for (int i = readItems; i < readSize; i++) {
                 Object item = read(itemType);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
index 191c522..f52a4c8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageReader.java
@@ -236,8 +236,8 @@ public class DirectMessageReader implements MessageReader {
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T[] readObjectArray(String name, MessageAdapter.Type 
itemType) {
-        T[] msg = stream.readObjectArray(itemType);
+    @Override public <T> T[] readObjectArray(String name, MessageAdapter.Type 
itemType, Class<T> itemCls) {
+        T[] msg = stream.readObjectArray(itemType, itemCls);
 
         lastRead = stream.lastFinished();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
index 832c6fd..c39f571 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockRequest.java
@@ -589,7 +589,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
 
         switch (readState) {
             case 8:
-                drVersByIdx = reader.readObjectArray("drVersByIdx", Type.MSG);
+                drVersByIdx = reader.readObjectArray("drVersByIdx", Type.MSG, 
GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
index df1ed45..a6caa5a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateRequest.java
@@ -914,7 +914,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 readState++;
 
             case 8:
-                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR);
+                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
index 6600b76..5103919 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest.java
@@ -768,7 +768,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 readState++;
 
             case 8:
-                filterBytes = reader.readObjectArray("filterBytes", 
Type.BYTE_ARR);
+                filterBytes = reader.readObjectArray("filterBytes", 
Type.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;
@@ -800,7 +800,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 readState++;
 
             case 12:
-                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR);
+                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
index 58054c1..3e30f4d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockRequest.java
@@ -470,7 +470,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 readState++;
 
             case 25:
-                dhtVers = reader.readObjectArray("dhtVers", Type.MSG);
+                dhtVers = reader.readObjectArray("dhtVers", Type.MSG, 
GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;
@@ -478,7 +478,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 readState++;
 
             case 26:
-                filterBytes = reader.readObjectArray("filterBytes", 
Type.BYTE_ARR);
+                filterBytes = reader.readObjectArray("filterBytes", 
Type.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
index 0587f06..e74f4eb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockResponse.java
@@ -262,7 +262,7 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
 
         switch (readState) {
             case 11:
-                dhtVers = reader.readObjectArray("dhtVers", Type.MSG);
+                dhtVers = reader.readObjectArray("dhtVers", Type.MSG, 
GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;
@@ -278,7 +278,7 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
                 readState++;
 
             case 13:
-                mappedVers = reader.readObjectArray("mappedVers", Type.MSG);
+                mappedVers = reader.readObjectArray("mappedVers", Type.MSG, 
GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageAdapter.java
index 48c65fd..9cb8945 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageAdapter.java
@@ -17,11 +17,8 @@
 
 package org.apache.ignite.plugin.extensions.communication;
 
-import org.apache.ignite.lang.*;
-
 import java.io.*;
 import java.nio.*;
-import java.util.*;
 
 /**
  * Base class for all communication messages.
@@ -91,56 +88,46 @@ public abstract class MessageAdapter implements 
Serializable, Cloneable {
      * TODO
      */
     public enum Type {
-        BYTE(Byte.class),
-
-        SHORT(Short.class),
-
-        INT(Integer.class),
-
-        LONG(Long.class),
+        BYTE,
 
-        FLOAT(Float.class),
+        SHORT,
 
-        DOUBLE(Double.class),
+        INT,
 
-        CHAR(Character.class),
+        LONG,
 
-        BOOLEAN(Boolean.class),
+        FLOAT,
 
-        BYTE_ARR(byte[].class),
+        DOUBLE,
 
-        SHORT_ARR(short[].class),
+        CHAR,
 
-        INT_ARR(int[].class),
+        BOOLEAN,
 
-        LONG_ARR(long[].class),
+        BYTE_ARR,
 
-        FLOAT_ARR(float[].class),
+        SHORT_ARR,
 
-        DOUBLE_ARR(double[].class),
+        INT_ARR,
 
-        CHAR_ARR(char[].class),
+        LONG_ARR,
 
-        BOOLEAN_ARR(boolean[].class),
+        FLOAT_ARR,
 
-        STRING(String.class),
+        DOUBLE_ARR,
 
-        BIT_SET(BitSet.class),
+        CHAR_ARR,
 
-        UUID(UUID.class),
+        BOOLEAN_ARR,
 
-        IGNITE_UUID(IgniteUuid.class),
+        STRING,
 
-        MSG(MessageAdapter.class);
+        BIT_SET,
 
-        private final Class<?> cls;
+        UUID,
 
-        private Type(Class<?> cls) {
-            this.cls = cls;
-        }
+        IGNITE_UUID,
 
-        public Class<?> clazz() {
-            return cls;
-        }
+        MSG
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dcb4c709/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
 
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
index 415ea82..9fa122d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageReader.java
@@ -208,9 +208,10 @@ public interface MessageReader {
      *
      * @param name Field name.
      * @param itemType Array component type.
+     * @param itemCls Array component class.
      * @return Array of objects.
      */
-    public <T> T[] readObjectArray(String name, MessageAdapter.Type itemType);
+    public <T> T[] readObjectArray(String name, MessageAdapter.Type itemType, 
Class<T> itemCls);
 
     /**
      * Reads collection.

Reply via email to