http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/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 678e83b..de92e2c 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
@@ -397,7 +397,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -450,23 +450,23 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 grpLockKeyBytes = reader.readByteArray("grpLockKeyBytes");
@@ -474,7 +474,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 isInTx = reader.readBoolean("isInTx");
@@ -482,7 +482,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 isInvalidate = reader.readBoolean("isInvalidate");
@@ -490,7 +490,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 isRead = reader.readBoolean("isRead");
@@ -498,7 +498,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 byte isolationOrd;
@@ -510,15 +510,15 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
 
                 isolation = TransactionIsolation.fromOrdinal(isolationOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 14:
-                keyBytes = reader.readCollection("keyBytes", Type.BYTE_ARR);
+                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
                 nearXidVer = reader.readMessage("nearXidVer");
@@ -526,7 +526,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 nodeId = reader.readUuid("nodeId");
@@ -534,7 +534,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 partLock = reader.readBoolean("partLock");
@@ -542,7 +542,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 retVals = reader.readBooleanArray("retVals");
@@ -550,7 +550,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 19:
                 threadId = reader.readLong("threadId");
@@ -558,7 +558,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 timeout = reader.readLong("timeout");
@@ -566,7 +566,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
                 txSize = reader.readInt("txSize");
@@ -574,7 +574,7 @@ public class GridDistributedLockRequest<K, V> extends 
GridDistributedBaseMessage
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
index 2d4f1ae..bd52d4b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedLockResponse.java
@@ -304,7 +304,7 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("valBytes", valBytes, Type.MSG))
+                if (!writer.writeCollection("valBytes", valBytes, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -315,23 +315,23 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 futId = reader.readIgniteUuid("futId");
@@ -339,15 +339,15 @@ public class GridDistributedLockResponse<K, V> extends 
GridDistributedBaseMessag
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
-                valBytes = reader.readCollection("valBytes", Type.MSG);
+                valBytes = reader.readCollection("valBytes", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
index 9af4ef2..8f954e8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java
@@ -332,23 +332,23 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
                 baseVer = reader.readMessage("baseVer");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 commit = reader.readBoolean("commit");
@@ -356,7 +356,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 commitVer = reader.readMessage("commitVer");
@@ -364,7 +364,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 futId = reader.readIgniteUuid("futId");
@@ -372,7 +372,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 grpLockKeyBytes = reader.readByteArray("grpLockKeyBytes");
@@ -380,7 +380,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 invalidate = reader.readBoolean("invalidate");
@@ -388,7 +388,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 syncCommit = reader.readBoolean("syncCommit");
@@ -396,7 +396,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
                 syncRollback = reader.readBoolean("syncRollback");
@@ -404,7 +404,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 sys = reader.readBoolean("sys");
@@ -412,7 +412,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 threadId = reader.readLong("threadId");
@@ -420,7 +420,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 txSize = reader.readInt("txSize");
@@ -428,7 +428,7 @@ public class GridDistributedTxFinishRequest<K, V> extends 
GridDistributedBaseMes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
index 7bde39c..43168de 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishResponse.java
@@ -106,23 +106,23 @@ public class GridDistributedTxFinishResponse<K, V> 
extends GridCacheMessage<K, V
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 txId = reader.readMessage("txId");
@@ -130,7 +130,7 @@ public class GridDistributedTxFinishResponse<K, V> extends 
GridCacheMessage<K, V
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
index b4466da..8f3742b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java
@@ -472,7 +472,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 writer.incrementState();
 
             case 15:
-                if (!writer.writeCollection("readsBytes", readsBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("readsBytes", readsBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -514,7 +514,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 writer.incrementState();
 
             case 22:
-                if (!writer.writeCollection("writesBytes", writesBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("writesBytes", writesBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -525,16 +525,16 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
                 byte concurrencyOrd;
 
@@ -545,7 +545,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
 
                 concurrency = 
TransactionConcurrency.fromOrdinal(concurrencyOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 dhtVersBytes = reader.readByteArray("dhtVersBytes");
@@ -553,7 +553,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 grpLockKeyBytes = reader.readByteArray("grpLockKeyBytes");
@@ -561,7 +561,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 invalidate = reader.readBoolean("invalidate");
@@ -569,7 +569,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 byte isolationOrd;
@@ -581,7 +581,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
 
                 isolation = TransactionIsolation.fromOrdinal(isolationOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 onePhaseCommit = reader.readBoolean("onePhaseCommit");
@@ -589,7 +589,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 partLock = reader.readBoolean("partLock");
@@ -597,15 +597,15 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
-                readsBytes = reader.readCollection("readsBytes", 
Type.BYTE_ARR);
+                readsBytes = reader.readCollection("readsBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 sys = reader.readBoolean("sys");
@@ -613,7 +613,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 threadId = reader.readLong("threadId");
@@ -621,7 +621,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 timeout = reader.readLong("timeout");
@@ -629,7 +629,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 19:
                 txNodesBytes = reader.readByteArray("txNodesBytes");
@@ -637,7 +637,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 txSize = reader.readInt("txSize");
@@ -645,7 +645,7 @@ public class GridDistributedTxPrepareRequest<K, V> extends 
GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
                 writeVer = reader.readMessage("writeVer");
@@ -653,15 +653,15 @@ public class GridDistributedTxPrepareRequest<K, V> 
extends GridDistributedBaseMe
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 22:
-                writesBytes = reader.readCollection("writesBytes", 
Type.BYTE_ARR);
+                writesBytes = reader.readCollection("writesBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
index d0838a8..e7b88cc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java
@@ -181,23 +181,23 @@ public class GridDistributedTxPrepareResponse<K, V> 
extends GridDistributedBaseM
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
                 candsBytes = reader.readByteArray("candsBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 errBytes = reader.readByteArray("errBytes");
@@ -205,7 +205,7 @@ public class GridDistributedTxPrepareResponse<K, V> extends 
GridDistributedBaseM
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
index 593d683..5252837 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedUnlockRequest.java
@@ -130,7 +130,7 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
 
         switch (writer.state()) {
             case 8:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -141,23 +141,23 @@ public class GridDistributedUnlockRequest<K, V> extends 
GridDistributedBaseMessa
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 8:
-                keyBytes = reader.readCollection("keyBytes", Type.BYTE_ARR);
+                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
index 3a5c1cd..547d414 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentRequest.java
@@ -98,23 +98,23 @@ public class GridDhtAffinityAssignmentRequest<K, V> extends 
GridCacheMessage<K,
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 topVer = reader.readLong("topVer");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
index 25e986b..9b86e55 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java
@@ -144,23 +144,23 @@ public class GridDhtAffinityAssignmentResponse<K, V> 
extends GridCacheMessage<K,
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 affAssignmentBytes = 
reader.readByteArray("affAssignmentBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 topVer = reader.readLong("topVer");
@@ -168,7 +168,7 @@ public class GridDhtAffinityAssignmentResponse<K, V> 
extends GridCacheMessage<K,
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
index 505ddbd..b4337f8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockRequest.java
@@ -370,7 +370,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 writer.incrementState();
 
             case 25:
-                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -411,23 +411,23 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 22:
                 accessTtl = reader.readLong("accessTtl");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 23:
                 invalidateEntries = reader.readBitSet("invalidateEntries");
@@ -435,7 +435,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 24:
                 miniId = reader.readIgniteUuid("miniId");
@@ -443,15 +443,15 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 25:
-                nearKeyBytes = reader.readCollection("nearKeyBytes", 
Type.BYTE_ARR);
+                nearKeyBytes = reader.readCollection("nearKeyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 26:
                 ownedBytes = reader.readByteArray("ownedBytes");
@@ -459,7 +459,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 27:
                 preloadKeys = reader.readBitSet("preloadKeys");
@@ -467,7 +467,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 28:
                 subjId = reader.readUuid("subjId");
@@ -475,7 +475,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 29:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -483,7 +483,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 30:
                 topVer = reader.readLong("topVer");
@@ -491,7 +491,7 @@ public class GridDhtLockRequest<K, V> extends 
GridDistributedLockRequest<K, V> {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
index ba9be82..6c72860 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockResponse.java
@@ -214,7 +214,7 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
 
         switch (writer.state()) {
             case 11:
-                if (!writer.writeCollection("invalidParts", invalidParts, 
Type.INT))
+                if (!writer.writeCollection("invalidParts", invalidParts, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -226,13 +226,13 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeCollection("preloadEntriesBytes", 
preloadEntriesBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("preloadEntriesBytes", 
preloadEntriesBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -243,23 +243,23 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 11:
-                invalidParts = reader.readCollection("invalidParts", Type.INT);
+                invalidParts = reader.readCollection("invalidParts", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 miniId = reader.readIgniteUuid("miniId");
@@ -267,23 +267,23 @@ public class GridDhtLockResponse<K, V> extends 
GridDistributedLockResponse<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
-                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
Type.BYTE_ARR);
+                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
-                preloadEntriesBytes = 
reader.readCollection("preloadEntriesBytes", Type.BYTE_ARR);
+                preloadEntriesBytes = 
reader.readCollection("preloadEntriesBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
index 3c5ffc7..2835844 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishRequest.java
@@ -257,7 +257,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 writer.incrementState();
 
             case 22:
-                if (!writer.writeCollection("pendingVers", pendingVers, 
Type.MSG))
+                if (!writer.writeCollection("pendingVers", pendingVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -298,16 +298,16 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 19:
                 byte isolationOrd;
 
@@ -318,7 +318,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
 
                 isolation = TransactionIsolation.fromOrdinal(isolationOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 miniId = reader.readIgniteUuid("miniId");
@@ -326,7 +326,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
                 nearNodeId = reader.readUuid("nearNodeId");
@@ -334,15 +334,15 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 22:
-                pendingVers = reader.readCollection("pendingVers", Type.MSG);
+                pendingVers = reader.readCollection("pendingVers", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 23:
                 subjId = reader.readUuid("subjId");
@@ -350,7 +350,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 24:
                 sysInvalidate = reader.readBoolean("sysInvalidate");
@@ -358,7 +358,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 25:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -366,7 +366,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 26:
                 topVer = reader.readLong("topVer");
@@ -374,7 +374,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 27:
                 writeVer = reader.readMessage("writeVer");
@@ -382,7 +382,7 @@ public class GridDhtTxFinishRequest<K, V> extends 
GridDistributedTxFinishRequest
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
index 1b27c82..1dcd51f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxFinishResponse.java
@@ -95,23 +95,23 @@ public class GridDhtTxFinishResponse<K, V> extends 
GridDistributedTxFinishRespon
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 5:
                 miniId = reader.readIgniteUuid("miniId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
index 7383c4d..0216774 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareRequest.java
@@ -359,7 +359,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 writer.incrementState();
 
             case 28:
-                if (!writer.writeCollection("nearWritesBytes", 
nearWritesBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("nearWritesBytes", 
nearWritesBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -406,23 +406,23 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 23:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 24:
                 invalidateNearEntries = 
reader.readBitSet("invalidateNearEntries");
@@ -430,7 +430,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 25:
                 last = reader.readBoolean("last");
@@ -438,7 +438,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 26:
                 miniId = reader.readIgniteUuid("miniId");
@@ -446,7 +446,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 27:
                 nearNodeId = reader.readUuid("nearNodeId");
@@ -454,15 +454,15 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 28:
-                nearWritesBytes = reader.readCollection("nearWritesBytes", 
Type.BYTE_ARR);
+                nearWritesBytes = reader.readCollection("nearWritesBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 29:
                 nearXidVer = reader.readMessage("nearXidVer");
@@ -470,7 +470,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 30:
                 ownedBytes = reader.readByteArray("ownedBytes");
@@ -478,7 +478,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 31:
                 preloadKeys = reader.readBitSet("preloadKeys");
@@ -486,7 +486,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 32:
                 subjId = reader.readUuid("subjId");
@@ -494,7 +494,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 33:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -502,7 +502,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 34:
                 topVer = reader.readLong("topVer");
@@ -510,7 +510,7 @@ public class GridDhtTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareReque
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
index ef3bc5d..99e1b00 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareResponse.java
@@ -228,7 +228,7 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
                 writer.incrementState();
 
             case 11:
-                if (!writer.writeCollection("invalidParts", invalidParts, 
Type.INT))
+                if (!writer.writeCollection("invalidParts", invalidParts, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -240,13 +240,13 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeCollection("preloadEntriesBytes", 
preloadEntriesBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("preloadEntriesBytes", 
preloadEntriesBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -257,31 +257,31 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 10:
                 futId = reader.readIgniteUuid("futId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
-                invalidParts = reader.readCollection("invalidParts", Type.INT);
+                invalidParts = reader.readCollection("invalidParts", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 miniId = reader.readIgniteUuid("miniId");
@@ -289,23 +289,23 @@ public class GridDhtTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareResp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
-                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
Type.BYTE_ARR);
+                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
-                preloadEntriesBytes = 
reader.readCollection("preloadEntriesBytes", Type.BYTE_ARR);
+                preloadEntriesBytes = 
reader.readCollection("preloadEntriesBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
index aee52b7..6fec0ef 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtUnlockRequest.java
@@ -119,7 +119,7 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
 
         switch (writer.state()) {
             case 9:
-                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -130,23 +130,23 @@ public class GridDhtUnlockRequest<K, V> extends 
GridDistributedUnlockRequest<K,
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 9:
-                nearKeyBytes = reader.readCollection("nearKeyBytes", 
Type.BYTE_ARR);
+                nearKeyBytes = reader.readCollection("nearKeyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
index 0cd2dc2..870961b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicDeferredUpdateResponse.java
@@ -88,7 +88,7 @@ public class GridDhtAtomicDeferredUpdateResponse<K, V> 
extends GridCacheMessage<
 
         switch (writer.state()) {
             case 3:
-                if (!writer.writeCollection("futVers", futVers, Type.MSG))
+                if (!writer.writeCollection("futVers", futVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -99,23 +99,23 @@ public class GridDhtAtomicDeferredUpdateResponse<K, V> 
extends GridCacheMessage<
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
-                futVers = reader.readCollection("futVers", Type.MSG);
+                futVers = reader.readCollection("futVers", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/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 a4f7ea8..91e83d2 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
@@ -688,13 +688,13 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeCollection("conflictVers", conflictVers, 
Type.MSG))
+                if (!writer.writeCollection("conflictVers", conflictVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeCollection("entryProcessorsBytes", 
entryProcessorsBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("entryProcessorsBytes", 
entryProcessorsBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -712,19 +712,19 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeObjectArray("invokeArgsBytes", 
invokeArgsBytes, Type.BYTE_ARR))
+                if (!writer.writeObjectArray("invokeArgsBytes", 
invokeArgsBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("nearEntryProcessorsBytes", 
nearEntryProcessorsBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("nearEntryProcessorsBytes", 
nearEntryProcessorsBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -736,7 +736,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("nearKeyBytes", nearKeyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -748,7 +748,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeCollection("nearValBytes", nearValBytes, 
Type.MSG))
+                if (!writer.writeCollection("nearValBytes", nearValBytes, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -790,7 +790,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 writer.incrementState();
 
             case 21:
-                if (!writer.writeCollection("valBytes", valBytes, Type.MSG))
+                if (!writer.writeCollection("valBytes", valBytes, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -807,39 +807,39 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 conflictExpireTimes = 
reader.readMessage("conflictExpireTimes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
-                conflictVers = reader.readCollection("conflictVers", Type.MSG);
+                conflictVers = reader.readCollection("conflictVers", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
-                entryProcessorsBytes = 
reader.readCollection("entryProcessorsBytes", Type.BYTE_ARR);
+                entryProcessorsBytes = 
reader.readCollection("entryProcessorsBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 forceTransformBackups = 
reader.readBoolean("forceTransformBackups");
@@ -847,7 +847,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 futVer = reader.readMessage("futVer");
@@ -855,31 +855,31 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
-                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR, byte[].class);
+                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
MessageCollectionItemType.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
-                keyBytes = reader.readCollection("keyBytes", Type.BYTE_ARR);
+                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
-                nearEntryProcessorsBytes = 
reader.readCollection("nearEntryProcessorsBytes", Type.BYTE_ARR);
+                nearEntryProcessorsBytes = 
reader.readCollection("nearEntryProcessorsBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 nearExpireTimes = reader.readMessage("nearExpireTimes");
@@ -887,15 +887,15 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
-                nearKeyBytes = reader.readCollection("nearKeyBytes", 
Type.BYTE_ARR);
+                nearKeyBytes = reader.readCollection("nearKeyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 nearTtls = reader.readMessage("nearTtls");
@@ -903,15 +903,15 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
-                nearValBytes = reader.readCollection("nearValBytes", Type.MSG);
+                nearValBytes = reader.readCollection("nearValBytes", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
                 nodeId = reader.readUuid("nodeId");
@@ -919,7 +919,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 subjId = reader.readUuid("subjId");
@@ -927,7 +927,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 byte syncModeOrd;
@@ -939,7 +939,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
 
                 syncMode = 
CacheWriteSynchronizationMode.fromOrdinal(syncModeOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -947,7 +947,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 19:
                 topVer = reader.readLong("topVer");
@@ -955,7 +955,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 ttls = reader.readMessage("ttls");
@@ -963,15 +963,15 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
-                valBytes = reader.readCollection("valBytes", Type.MSG);
+                valBytes = reader.readCollection("valBytes", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 22:
                 writeVer = reader.readMessage("writeVer");
@@ -979,7 +979,7 @@ public class GridDhtAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> imp
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
index 0c39d8c..0e463ec 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicUpdateResponse.java
@@ -211,7 +211,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, Type.BYTE_ARR))
+                if (!writer.writeCollection("nearEvictedBytes", 
nearEvictedBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -222,23 +222,23 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 failedKeysBytes = reader.readByteArray("failedKeysBytes");
@@ -246,7 +246,7 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 futVer = reader.readMessage("futVer");
@@ -254,15 +254,15 @@ public class GridDhtAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
-                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
Type.BYTE_ARR);
+                nearEvictedBytes = reader.readCollection("nearEvictedBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/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 28338f0..b41e3a8 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
@@ -558,7 +558,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeCollection("conflictVers", conflictVers, 
Type.MSG))
+                if (!writer.writeCollection("conflictVers", conflictVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -576,7 +576,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeObjectArray("filterBytes", filterBytes, 
Type.BYTE_ARR))
+                if (!writer.writeObjectArray("filterBytes", filterBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -600,13 +600,13 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeObjectArray("invokeArgsBytes", 
invokeArgsBytes, Type.BYTE_ARR))
+                if (!writer.writeObjectArray("invokeArgsBytes", 
invokeArgsBytes, MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -654,7 +654,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 writer.incrementState();
 
             case 21:
-                if (!writer.writeCollection("valBytes", valBytes, Type.MSG))
+                if (!writer.writeCollection("valBytes", valBytes, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -665,23 +665,23 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        if (!super.readFrom(buf))
+        if (!super.readFrom(buf, reader))
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 3:
                 conflictExpireTimes = 
reader.readMessage("conflictExpireTimes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 conflictTtls = reader.readMessage("conflictTtls");
@@ -689,15 +689,15 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
-                conflictVers = reader.readCollection("conflictVers", Type.MSG);
+                conflictVers = reader.readCollection("conflictVers", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 expiryPlcBytes = reader.readByteArray("expiryPlcBytes");
@@ -705,7 +705,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 fastMap = reader.readBoolean("fastMap");
@@ -713,15 +713,15 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
-                filterBytes = reader.readObjectArray("filterBytes", 
Type.BYTE_ARR, byte[].class);
+                filterBytes = reader.readObjectArray("filterBytes", 
MessageCollectionItemType.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 forceTransformBackups = 
reader.readBoolean("forceTransformBackups");
@@ -729,7 +729,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 futVer = reader.readMessage("futVer");
@@ -737,7 +737,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 hasPrimary = reader.readBoolean("hasPrimary");
@@ -745,23 +745,23 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
-                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
Type.BYTE_ARR, byte[].class);
+                invokeArgsBytes = reader.readObjectArray("invokeArgsBytes", 
MessageCollectionItemType.BYTE_ARR, byte[].class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
-                keyBytes = reader.readCollection("keyBytes", Type.BYTE_ARR);
+                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 byte opOrd;
@@ -773,7 +773,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
 
                 op = GridCacheOperation.fromOrdinal(opOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 15:
                 retval = reader.readBoolean("retval");
@@ -781,7 +781,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 subjId = reader.readUuid("subjId");
@@ -789,7 +789,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 byte syncModeOrd;
@@ -801,7 +801,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
 
                 syncMode = 
CacheWriteSynchronizationMode.fromOrdinal(syncModeOrd);
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -809,7 +809,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 19:
                 topVer = reader.readLong("topVer");
@@ -817,7 +817,7 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 updateVer = reader.readMessage("updateVer");
@@ -825,15 +825,15 @@ public class GridNearAtomicUpdateRequest<K, V> extends 
GridCacheMessage<K, V> im
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
-                valBytes = reader.readCollection("valBytes", Type.MSG);
+                valBytes = reader.readCollection("valBytes", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
         }
 

Reply via email to