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/GridNearAtomicUpdateResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
index 7960c66..e141153 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateResponse.java
@@ -457,7 +457,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 writer.incrementState();
 
             case 7:
-                if (!writer.writeCollection("nearSkipIdxs", nearSkipIdxs, 
Type.INT))
+                if (!writer.writeCollection("nearSkipIdxs", nearSkipIdxs, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -469,13 +469,13 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeCollection("nearValBytes", nearValBytes, 
Type.MSG))
+                if (!writer.writeCollection("nearValBytes", nearValBytes, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("nearValsIdxs", nearValsIdxs, 
Type.INT))
+                if (!writer.writeCollection("nearValsIdxs", nearValsIdxs, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -504,23 +504,23 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
     }
 
     /** {@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");
@@ -528,7 +528,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 futVer = reader.readMessage("futVer");
@@ -536,7 +536,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 nearExpireTimes = reader.readMessage("nearExpireTimes");
@@ -544,15 +544,15 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
-                nearSkipIdxs = reader.readCollection("nearSkipIdxs", Type.INT);
+                nearSkipIdxs = reader.readCollection("nearSkipIdxs", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 nearTtls = reader.readMessage("nearTtls");
@@ -560,23 +560,23 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
-                nearValBytes = reader.readCollection("nearValBytes", Type.MSG);
+                nearValBytes = reader.readCollection("nearValBytes", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
-                nearValsIdxs = reader.readCollection("nearValsIdxs", Type.INT);
+                nearValsIdxs = reader.readCollection("nearValsIdxs", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 nearVer = reader.readMessage("nearVer");
@@ -584,7 +584,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 remapKeysBytes = reader.readByteArray("remapKeysBytes");
@@ -592,7 +592,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 retValBytes = reader.readByteArray("retValBytes");
@@ -600,7 +600,7 @@ public class GridNearAtomicUpdateResponse<K, V> extends 
GridCacheMessage<K, V> i
                 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/preloader/GridDhtForceKeysRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
index 7090828..2a28062 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysRequest.java
@@ -183,7 +183,7 @@ public class GridDhtForceKeysRequest<K, V> extends 
GridCacheMessage<K, V> implem
                 writer.incrementState();
 
             case 4:
-                if (!writer.writeCollection("keyBytes", keyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -206,31 +206,31 @@ public class GridDhtForceKeysRequest<K, V> extends 
GridCacheMessage<K, V> implem
     }
 
     /** {@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:
-                keyBytes = reader.readCollection("keyBytes", Type.BYTE_ARR);
+                keyBytes = reader.readCollection("keyBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 miniId = reader.readIgniteUuid("miniId");
@@ -238,7 +238,7 @@ public class GridDhtForceKeysRequest<K, V> extends 
GridCacheMessage<K, V> implem
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 topVer = reader.readLong("topVer");
@@ -246,7 +246,7 @@ public class GridDhtForceKeysRequest<K, V> extends 
GridCacheMessage<K, V> implem
                 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/preloader/GridDhtForceKeysResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
index 1732979..bb3c1cd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtForceKeysResponse.java
@@ -198,7 +198,7 @@ public class GridDhtForceKeysResponse<K, V> extends 
GridCacheMessage<K, V> imple
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("missedKeyBytes", missedKeyBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("missedKeyBytes", missedKeyBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -209,23 +209,23 @@ public class GridDhtForceKeysResponse<K, V> extends 
GridCacheMessage<K, V> imple
     }
 
     /** {@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:
                 infosBytes = reader.readByteArray("infosBytes");
@@ -233,7 +233,7 @@ public class GridDhtForceKeysResponse<K, V> extends 
GridCacheMessage<K, V> imple
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 miniId = reader.readIgniteUuid("miniId");
@@ -241,15 +241,15 @@ public class GridDhtForceKeysResponse<K, V> extends 
GridCacheMessage<K, V> imple
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
-                missedKeyBytes = reader.readCollection("missedKeyBytes", 
Type.BYTE_ARR);
+                missedKeyBytes = reader.readCollection("missedKeyBytes", 
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/preloader/GridDhtPartitionDemandMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java
index 99e4110..54a47d5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandMessage.java
@@ -205,7 +205,7 @@ public class GridDhtPartitionDemandMessage<K, V> extends 
GridCacheMessage<K, V>
 
         switch (writer.state()) {
             case 3:
-                if (!writer.writeCollection("parts", parts, Type.INT))
+                if (!writer.writeCollection("parts", parts, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -246,23 +246,23 @@ public class GridDhtPartitionDemandMessage<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:
-                parts = reader.readCollection("parts", Type.INT);
+                parts = reader.readCollection("parts", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 timeout = reader.readLong("timeout");
@@ -270,7 +270,7 @@ public class GridDhtPartitionDemandMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 topVer = reader.readLong("topVer");
@@ -278,7 +278,7 @@ public class GridDhtPartitionDemandMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 topicBytes = reader.readByteArray("topicBytes");
@@ -286,7 +286,7 @@ public class GridDhtPartitionDemandMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 updateSeq = reader.readLong("updateSeq");
@@ -294,7 +294,7 @@ public class GridDhtPartitionDemandMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 workerId = reader.readInt("workerId");
@@ -302,7 +302,7 @@ public class GridDhtPartitionDemandMessage<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/dht/preloader/GridDhtPartitionExchangeId.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionExchangeId.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionExchangeId.java
index e0bd120..9f55cc4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionExchangeId.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionExchangeId.java
@@ -181,20 +181,20 @@ public class GridDhtPartitionExchangeId extends 
MessageAdapter implements Compar
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 0:
                 evt = reader.readInt("evt");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 1:
                 nodeId = reader.readUuid("nodeId");
@@ -202,7 +202,7 @@ public class GridDhtPartitionExchangeId extends 
MessageAdapter implements Compar
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 2:
                 topVer = reader.readLong("topVer");
@@ -210,7 +210,7 @@ public class GridDhtPartitionExchangeId extends 
MessageAdapter implements Compar
                 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/preloader/GridDhtPartitionSupplyMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplyMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplyMessage.java
index 09b4056..70ace3e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplyMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplyMessage.java
@@ -300,13 +300,13 @@ public class GridDhtPartitionSupplyMessage<K, V> extends 
GridCacheMessage<K, V>
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeCollection("last", last, Type.INT))
+                if (!writer.writeCollection("last", last, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("missed", missed, Type.INT))
+                if (!writer.writeCollection("missed", missed, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -329,23 +329,23 @@ public class GridDhtPartitionSupplyMessage<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:
                 ack = reader.readBoolean("ack");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 infoBytes = reader.readByteArray("infoBytes");
@@ -353,23 +353,23 @@ public class GridDhtPartitionSupplyMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
-                last = reader.readCollection("last", Type.INT);
+                last = reader.readCollection("last", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
-                missed = reader.readCollection("missed", Type.INT);
+                missed = reader.readCollection("missed", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 updateSeq = reader.readLong("updateSeq");
@@ -377,7 +377,7 @@ public class GridDhtPartitionSupplyMessage<K, V> extends 
GridCacheMessage<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 workerId = reader.readInt("workerId");
@@ -385,7 +385,7 @@ public class GridDhtPartitionSupplyMessage<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/dht/preloader/GridDhtPartitionsAbstractMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
index 3721998..9a83fa8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsAbstractMessage.java
@@ -107,23 +107,23 @@ abstract class GridDhtPartitionsAbstractMessage<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:
                 exchId = reader.readMessage("exchId");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 lastVer = reader.readMessage("lastVer");
@@ -131,7 +131,7 @@ abstract class GridDhtPartitionsAbstractMessage<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/preloader/GridDhtPartitionsFullMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
index 516fdd1..70fe7fd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsFullMessage.java
@@ -148,23 +148,23 @@ public class GridDhtPartitionsFullMessage<K, V> extends 
GridDhtPartitionsAbstrac
     }
 
     /** {@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:
                 partsBytes = reader.readByteArray("partsBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 topVer = reader.readLong("topVer");
@@ -172,7 +172,7 @@ public class GridDhtPartitionsFullMessage<K, V> extends 
GridDhtPartitionsAbstrac
                 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/preloader/GridDhtPartitionsSingleMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
index a262894..0cf2912 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleMessage.java
@@ -121,23 +121,23 @@ public class GridDhtPartitionsSingleMessage<K, V> extends 
GridDhtPartitionsAbstr
     }
 
     /** {@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:
                 partsBytes = reader.readByteArray("partsBytes");
 
                 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/preloader/GridDhtPartitionsSingleRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleRequest.java
index 9e7371d..5f94546 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsSingleRequest.java
@@ -62,13 +62,13 @@ public class GridDhtPartitionsSingleRequest<K, V> extends 
GridDhtPartitionsAbstr
     }
 
     /** {@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;
 
         return true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
index 44c9a59..06b3a61 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetRequest.java
@@ -266,7 +266,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 writer.incrementState();
 
             case 5:
-                if (!writer.writeMap("keyBytes", keyBytes, Type.BYTE_ARR, 
Type.BOOLEAN))
+                if (!writer.writeMap("keyBytes", keyBytes, 
MessageCollectionItemType.BYTE_ARR, MessageCollectionItemType.BOOLEAN))
                     return false;
 
                 writer.incrementState();
@@ -325,23 +325,23 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
     }
 
     /** {@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:
                 accessTtl = reader.readLong("accessTtl");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 futId = reader.readIgniteUuid("futId");
@@ -349,15 +349,15 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
-                keyBytes = reader.readMap("keyBytes", Type.BYTE_ARR, 
Type.BOOLEAN, true);
+                keyBytes = reader.readMap("keyBytes", 
MessageCollectionItemType.BYTE_ARR, MessageCollectionItemType.BOOLEAN, true);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 miniId = reader.readIgniteUuid("miniId");
@@ -365,7 +365,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 readThrough = reader.readBoolean("readThrough");
@@ -373,7 +373,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 reload = reader.readBoolean("reload");
@@ -381,7 +381,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 skipVals = reader.readBoolean("skipVals");
@@ -389,7 +389,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 subjId = reader.readUuid("subjId");
@@ -397,7 +397,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -405,7 +405,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 topVer = reader.readLong("topVer");
@@ -413,7 +413,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 ver = reader.readMessage("ver");
@@ -421,7 +421,7 @@ public class GridNearGetRequest<K, V> extends 
GridCacheMessage<K, V> implements
                 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/near/GridNearGetResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
index 0225724..6bbbc0f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetResponse.java
@@ -233,7 +233,7 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeCollection("invalidParts", invalidParts, 
Type.INT))
+                if (!writer.writeCollection("invalidParts", invalidParts, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -262,23 +262,23 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
     }
 
     /** {@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:
                 entriesBytes = reader.readByteArray("entriesBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 errBytes = reader.readByteArray("errBytes");
@@ -286,7 +286,7 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 futId = reader.readIgniteUuid("futId");
@@ -294,15 +294,15 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
-                invalidParts = reader.readCollection("invalidParts", Type.INT);
+                invalidParts = reader.readCollection("invalidParts", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 miniId = reader.readIgniteUuid("miniId");
@@ -310,7 +310,7 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 topVer = reader.readLong("topVer");
@@ -318,7 +318,7 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 ver = reader.readMessage("ver");
@@ -326,7 +326,7 @@ public class GridNearGetResponse<K, V> extends 
GridCacheMessage<K, V> implements
                 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/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 182d465..d1ae174 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
@@ -343,13 +343,13 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 writer.incrementState();
 
             case 23:
-                if (!writer.writeObjectArray("dhtVers", dhtVers, Type.MSG))
+                if (!writer.writeObjectArray("dhtVers", dhtVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 24:
-                if (!writer.writeObjectArray("filterBytes", filterBytes, 
Type.BYTE_ARR))
+                if (!writer.writeObjectArray("filterBytes", filterBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -414,39 +414,39 @@ public class GridNearLockRequest<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:
-                dhtVers = reader.readObjectArray("dhtVers", Type.MSG, 
GridCacheVersion.class);
+                dhtVers = reader.readObjectArray("dhtVers", 
MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 24:
-                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 25:
                 hasTransforms = reader.readBoolean("hasTransforms");
@@ -454,7 +454,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 26:
                 implicitSingleTx = reader.readBoolean("implicitSingleTx");
@@ -462,7 +462,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 27:
                 implicitTx = reader.readBoolean("implicitTx");
@@ -470,7 +470,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 28:
                 miniId = reader.readIgniteUuid("miniId");
@@ -478,7 +478,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 29:
                 onePhaseCommit = reader.readBoolean("onePhaseCommit");
@@ -486,7 +486,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 30:
                 subjId = reader.readUuid("subjId");
@@ -494,7 +494,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 31:
                 syncCommit = reader.readBoolean("syncCommit");
@@ -502,7 +502,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 32:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -510,7 +510,7 @@ public class GridNearLockRequest<K, V> extends 
GridDistributedLockRequest<K, V>
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 33:
                 topVer = reader.readLong("topVer");
@@ -518,7 +518,7 @@ public class GridNearLockRequest<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/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 ba4c48a..b60c539 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
@@ -196,7 +196,7 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
 
         switch (writer.state()) {
             case 11:
-                if (!writer.writeObjectArray("dhtVers", dhtVers, Type.MSG))
+                if (!writer.writeObjectArray("dhtVers", dhtVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -208,7 +208,7 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeObjectArray("mappedVers", mappedVers, 
Type.MSG))
+                if (!writer.writeObjectArray("mappedVers", mappedVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -220,7 +220,7 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
                 writer.incrementState();
 
             case 15:
-                if (!writer.writeCollection("pending", pending, Type.MSG))
+                if (!writer.writeCollection("pending", pending, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -231,23 +231,23 @@ public class GridNearLockResponse<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:
-                dhtVers = reader.readObjectArray("dhtVers", Type.MSG, 
GridCacheVersion.class);
+                dhtVers = reader.readObjectArray("dhtVers", 
MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 filterRes = reader.readBooleanArray("filterRes");
@@ -255,15 +255,15 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
-                mappedVers = reader.readObjectArray("mappedVers", Type.MSG, 
GridCacheVersion.class);
+                mappedVers = reader.readObjectArray("mappedVers", 
MessageCollectionItemType.MSG, GridCacheVersion.class);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 miniId = reader.readIgniteUuid("miniId");
@@ -271,15 +271,15 @@ public class GridNearLockResponse<K, V> extends 
GridDistributedLockResponse<K, V
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
-                pending = reader.readCollection("pending", Type.MSG);
+                pending = reader.readCollection("pending", 
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/near/GridNearTxFinishRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
index 0b73006..f29cfea 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishRequest.java
@@ -209,23 +209,23 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
     }
 
     /** {@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:
                 explicitLock = reader.readBoolean("explicitLock");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 miniId = reader.readIgniteUuid("miniId");
@@ -233,7 +233,7 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
                 storeEnabled = reader.readBoolean("storeEnabled");
@@ -241,7 +241,7 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 22:
                 subjId = reader.readUuid("subjId");
@@ -249,7 +249,7 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 23:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -257,7 +257,7 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 24:
                 topVer = reader.readLong("topVer");
@@ -265,7 +265,7 @@ public class GridNearTxFinishRequest<K, V> extends 
GridDistributedTxFinishReques
                 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/near/GridNearTxFinishResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
index 322014e..08d4ea4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishResponse.java
@@ -152,23 +152,23 @@ public class GridNearTxFinishResponse<K, V> extends 
GridDistributedTxFinishRespo
     }
 
     /** {@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:
                 errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 miniId = reader.readIgniteUuid("miniId");
@@ -176,7 +176,7 @@ public class GridNearTxFinishResponse<K, V> extends 
GridDistributedTxFinishRespo
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 nearThreadId = reader.readLong("nearThreadId");
@@ -184,7 +184,7 @@ public class GridNearTxFinishResponse<K, V> extends 
GridDistributedTxFinishRespo
                 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/near/GridNearTxPrepareRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
index ede1da3..ca82996 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareRequest.java
@@ -276,7 +276,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 writer.incrementState();
 
             case 26:
-                if (!writer.writeCollection("lastBackups", lastBackups, 
Type.UUID))
+                if (!writer.writeCollection("lastBackups", lastBackups, 
MessageCollectionItemType.UUID))
                     return false;
 
                 writer.incrementState();
@@ -323,23 +323,23 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
     }
 
     /** {@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:
                 implicitSingle = reader.readBoolean("implicitSingle");
@@ -347,7 +347,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 25:
                 last = reader.readBoolean("last");
@@ -355,15 +355,15 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 26:
-                lastBackups = reader.readCollection("lastBackups", Type.UUID);
+                lastBackups = reader.readCollection("lastBackups", 
MessageCollectionItemType.UUID);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 27:
                 miniId = reader.readIgniteUuid("miniId");
@@ -371,7 +371,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 28:
                 near = reader.readBoolean("near");
@@ -379,7 +379,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 29:
                 retVal = reader.readBoolean("retVal");
@@ -387,7 +387,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 30:
                 subjId = reader.readUuid("subjId");
@@ -395,7 +395,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 31:
                 taskNameHash = reader.readInt("taskNameHash");
@@ -403,7 +403,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 32:
                 topVer = reader.readLong("topVer");
@@ -411,7 +411,7 @@ public class GridNearTxPrepareRequest<K, V> extends 
GridDistributedTxPrepareRequ
                 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/near/GridNearTxPrepareResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
index 07ad949..3776fac 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareResponse.java
@@ -316,7 +316,7 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeCollection("invalidParts", invalidParts, 
Type.INT))
+                if (!writer.writeCollection("invalidParts", invalidParts, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
@@ -328,13 +328,13 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 writer.incrementState();
 
             case 15:
-                if (!writer.writeCollection("ownedValsBytes", ownedValsBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("ownedValsBytes", ownedValsBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
 
             case 16:
-                if (!writer.writeCollection("pending", pending, Type.MSG))
+                if (!writer.writeCollection("pending", pending, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -351,23 +351,23 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
     }
 
     /** {@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:
                 dhtVer = reader.readMessage("dhtVer");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 filterFailedKeyBytes = 
reader.readByteArray("filterFailedKeyBytes");
@@ -375,7 +375,7 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 futId = reader.readIgniteUuid("futId");
@@ -383,15 +383,15 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
-                invalidParts = reader.readCollection("invalidParts", Type.INT);
+                invalidParts = reader.readCollection("invalidParts", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 miniId = reader.readIgniteUuid("miniId");
@@ -399,23 +399,23 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
-                ownedValsBytes = reader.readCollection("ownedValsBytes", 
Type.BYTE_ARR);
+                ownedValsBytes = reader.readCollection("ownedValsBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
-                pending = reader.readCollection("pending", Type.MSG);
+                pending = reader.readCollection("pending", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 retValBytes = reader.readByteArray("retValBytes");
@@ -423,7 +423,7 @@ public class GridNearTxPrepareResponse<K, V> extends 
GridDistributedTxPrepareRes
                 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/near/GridNearUnlockRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
index 59f6c22..0b9df12 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearUnlockRequest.java
@@ -64,13 +64,13 @@ public class GridNearUnlockRequest<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;
 
         return true;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ad02d6e3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java
index 0d8c00a..f045d0c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryRequest.java
@@ -575,23 +575,23 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
     }
 
     /** {@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:
                 all = reader.readBoolean("all");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 argsBytes = reader.readByteArray("argsBytes");
@@ -599,7 +599,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 cacheName = reader.readString("cacheName");
@@ -607,7 +607,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 cancel = reader.readBoolean("cancel");
@@ -615,7 +615,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
                 clause = reader.readString("clause");
@@ -623,7 +623,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 clsName = reader.readString("clsName");
@@ -631,7 +631,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 9:
                 fields = reader.readBoolean("fields");
@@ -639,7 +639,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 10:
                 id = reader.readLong("id");
@@ -647,7 +647,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 11:
                 incBackups = reader.readBoolean("incBackups");
@@ -655,7 +655,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 12:
                 incMeta = reader.readBoolean("incMeta");
@@ -663,7 +663,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 13:
                 keepPortable = reader.readBoolean("keepPortable");
@@ -671,7 +671,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 14:
                 keyValFilterBytes = reader.readByteArray("keyValFilterBytes");
@@ -679,7 +679,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 15:
                 pageSize = reader.readInt("pageSize");
@@ -687,7 +687,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 16:
                 prjFilterBytes = reader.readByteArray("prjFilterBytes");
@@ -695,7 +695,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 17:
                 rdcBytes = reader.readByteArray("rdcBytes");
@@ -703,7 +703,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 18:
                 subjId = reader.readUuid("subjId");
@@ -711,7 +711,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 19:
                 taskHash = reader.readInt("taskHash");
@@ -719,7 +719,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 20:
                 transBytes = reader.readByteArray("transBytes");
@@ -727,7 +727,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 21:
                 byte typeOrd;
@@ -739,7 +739,7 @@ public class GridCacheQueryRequest<K, V> extends 
GridCacheMessage<K, V> implemen
 
                 type = GridCacheQueryType.fromOrdinal(typeOrd);
 
-                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/query/GridCacheQueryResponse.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
index 7b79d4b..1518a6b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryResponse.java
@@ -217,7 +217,7 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
 
         switch (writer.state()) {
             case 3:
-                if (!writer.writeCollection("dataBytes", dataBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("dataBytes", dataBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -241,7 +241,7 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
                 writer.incrementState();
 
             case 7:
-                if (!writer.writeCollection("metaDataBytes", metaDataBytes, 
Type.BYTE_ARR))
+                if (!writer.writeCollection("metaDataBytes", metaDataBytes, 
MessageCollectionItemType.BYTE_ARR))
                     return false;
 
                 writer.incrementState();
@@ -258,23 +258,23 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
     }
 
     /** {@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:
-                dataBytes = reader.readCollection("dataBytes", Type.BYTE_ARR);
+                dataBytes = reader.readCollection("dataBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 4:
                 errBytes = reader.readByteArray("errBytes");
@@ -282,7 +282,7 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 5:
                 fields = reader.readBoolean("fields");
@@ -290,7 +290,7 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 6:
                 finished = reader.readBoolean("finished");
@@ -298,15 +298,15 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 7:
-                metaDataBytes = reader.readCollection("metaDataBytes", 
Type.BYTE_ARR);
+                metaDataBytes = reader.readCollection("metaDataBytes", 
MessageCollectionItemType.BYTE_ARR);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 8:
                 reqId = reader.readLong("reqId");
@@ -314,7 +314,7 @@ public class GridCacheQueryResponse<K, V> extends 
GridCacheMessage<K, V> impleme
                 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/version/GridCacheVersion.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
index d7bffac..368aa10 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
@@ -294,20 +294,20 @@ public class GridCacheVersion extends MessageAdapter 
implements Comparable<GridC
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 0:
                 globalTime = reader.readLong("globalTime");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 1:
                 nodeOrderDrId = reader.readInt("nodeOrderDrId");
@@ -315,7 +315,7 @@ public class GridCacheVersion extends MessageAdapter 
implements Comparable<GridC
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 2:
                 order = reader.readLong("order");
@@ -323,7 +323,7 @@ public class GridCacheVersion extends MessageAdapter 
implements Comparable<GridC
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 3:
                 topVer = reader.readInt("topVer");
@@ -331,7 +331,7 @@ public class GridCacheVersion extends MessageAdapter 
implements Comparable<GridC
                 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/clock/GridClockDeltaSnapshotMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaSnapshotMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaSnapshotMessage.java
index 5fdc693..5e619ef 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaSnapshotMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaSnapshotMessage.java
@@ -84,7 +84,7 @@ public class GridClockDeltaSnapshotMessage extends 
MessageAdapter {
 
         switch (writer.state()) {
             case 0:
-                if (!writer.writeMap("deltas", deltas, Type.UUID, Type.LONG))
+                if (!writer.writeMap("deltas", deltas, 
MessageCollectionItemType.UUID, MessageCollectionItemType.LONG))
                     return false;
 
                 writer.incrementState();
@@ -101,20 +101,20 @@ public class GridClockDeltaSnapshotMessage extends 
MessageAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 0:
-                deltas = reader.readMap("deltas", Type.UUID, Type.LONG, false);
+                deltas = reader.readMap("deltas", 
MessageCollectionItemType.UUID, MessageCollectionItemType.LONG, false);
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 1:
                 snapVer = reader.readMessage("snapVer");
@@ -122,7 +122,7 @@ public class GridClockDeltaSnapshotMessage extends 
MessageAdapter {
                 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/clock/GridClockDeltaVersion.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaVersion.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaVersion.java
index faae44c..0c037d7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaVersion.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockDeltaVersion.java
@@ -142,20 +142,20 @@ public class GridClockDeltaVersion extends MessageAdapter 
implements Comparable<
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 0:
                 topVer = reader.readLong("topVer");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 1:
                 ver = reader.readLong("ver");
@@ -163,7 +163,7 @@ public class GridClockDeltaVersion extends MessageAdapter 
implements Comparable<
                 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/continuous/GridContinuousMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java
index 0159af7..0994a06 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousMessage.java
@@ -172,20 +172,20 @@ public class GridContinuousMessage extends MessageAdapter 
{
     }
 
     /** {@inheritDoc} */
-    @Override public boolean readFrom(ByteBuffer buf) {
+    @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) {
         reader.setBuffer(buf);
 
         if (!reader.beforeMessageRead())
             return false;
 
-        switch (readState) {
+        switch (reader.state()) {
             case 0:
                 dataBytes = reader.readByteArray("dataBytes");
 
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 1:
                 futId = reader.readIgniteUuid("futId");
@@ -193,7 +193,7 @@ public class GridContinuousMessage extends MessageAdapter {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 2:
                 routineId = reader.readUuid("routineId");
@@ -201,7 +201,7 @@ public class GridContinuousMessage extends MessageAdapter {
                 if (!reader.isLastRead())
                     return false;
 
-                readState++;
+                reader.incrementState();
 
             case 3:
                 byte typeOrd;
@@ -213,7 +213,7 @@ public class GridContinuousMessage extends MessageAdapter {
 
                 type = GridContinuousMessageType.fromOrdinal(typeOrd);
 
-                readState++;
+                reader.incrementState();
 
         }
 

Reply via email to