IGNITE-9483: MVCC compatibility fixes. This closes #4696.

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

Branch: refs/heads/master
Commit: 469fb49e43e88bf7e007da9ba8853ec953a82aa1
Parents: a232b88
Author: Igor Seliverstov <[email protected]>
Authored: Fri Sep 7 11:57:46 2018 +0300
Committer: devozerov <[email protected]>
Committed: Fri Sep 7 11:57:46 2018 +0300

----------------------------------------------------------------------
 .../ignite/codegen/MessageCodeGenerator.java    |  4 +-
 .../internal/jdbc/thin/JdbcThinTcpIo.java       | 25 ++++++-----
 .../managers/communication/GridIoManager.java   |  2 +-
 .../distributed/dht/GridDhtTxFinishRequest.java | 24 +++++------
 .../dht/GridDhtTxPrepareRequest.java            | 44 ++++++++++----------
 .../GridDhtPartitionsSingleMessage.java         | 40 +++++++++---------
 .../distributed/near/GridNearGetRequest.java    | 24 +++++------
 .../near/GridNearSingleGetRequest.java          | 16 +++----
 .../near/GridNearTxPrepareResponse.java         | 24 +++++------
 .../cache/query/GridCacheQueryRequest.java      | 44 ++++++++++----------
 .../odbc/jdbc/JdbcBatchExecuteRequest.java      | 40 +++++++++---------
 .../odbc/jdbc/JdbcBatchExecuteResult.java       | 11 +++--
 .../odbc/jdbc/JdbcBulkLoadAckResult.java        | 11 +++--
 .../odbc/jdbc/JdbcBulkLoadBatchRequest.java     | 11 +++--
 .../processors/odbc/jdbc/JdbcColumnMeta.java    |  7 +++-
 .../processors/odbc/jdbc/JdbcColumnMetaV2.java  | 11 +++--
 .../processors/odbc/jdbc/JdbcColumnMetaV3.java  | 11 +++--
 .../processors/odbc/jdbc/JdbcColumnMetaV4.java  | 11 +++--
 .../odbc/jdbc/JdbcConnectionContext.java        |  6 ++-
 .../processors/odbc/jdbc/JdbcIndexMeta.java     |  7 +++-
 .../processors/odbc/jdbc/JdbcMessageParser.java | 13 ++++--
 .../odbc/jdbc/JdbcMetaColumnsRequest.java       | 11 +++--
 .../odbc/jdbc/JdbcMetaColumnsResult.java        | 15 ++++---
 .../odbc/jdbc/JdbcMetaIndexesRequest.java       | 11 +++--
 .../odbc/jdbc/JdbcMetaIndexesResult.java        | 15 ++++---
 .../odbc/jdbc/JdbcMetaParamsRequest.java        | 11 +++--
 .../odbc/jdbc/JdbcMetaParamsResult.java         | 15 ++++---
 .../odbc/jdbc/JdbcMetaPrimaryKeysRequest.java   | 11 +++--
 .../odbc/jdbc/JdbcMetaPrimaryKeysResult.java    | 15 ++++---
 .../odbc/jdbc/JdbcMetaSchemasRequest.java       | 11 +++--
 .../odbc/jdbc/JdbcMetaSchemasResult.java        | 11 +++--
 .../odbc/jdbc/JdbcMetaTablesRequest.java        | 11 +++--
 .../odbc/jdbc/JdbcMetaTablesResult.java         | 15 ++++---
 .../jdbc/JdbcOrderedBatchExecuteRequest.java    |  9 ++--
 .../jdbc/JdbcOrderedBatchExecuteResult.java     | 11 +++--
 .../processors/odbc/jdbc/JdbcParameterMeta.java |  7 +++-
 .../odbc/jdbc/JdbcPrimaryKeyMeta.java           |  7 +++-
 .../processors/odbc/jdbc/JdbcQuery.java         |  7 +++-
 .../odbc/jdbc/JdbcQueryCloseRequest.java        | 11 +++--
 ...dbcQueryExecuteMultipleStatementsResult.java | 15 ++++---
 .../odbc/jdbc/JdbcQueryExecuteRequest.java      | 33 ++++++++-------
 .../odbc/jdbc/JdbcQueryExecuteResult.java       | 11 +++--
 .../odbc/jdbc/JdbcQueryFetchRequest.java        | 11 +++--
 .../odbc/jdbc/JdbcQueryFetchResult.java         | 11 +++--
 .../odbc/jdbc/JdbcQueryMetadataRequest.java     | 11 +++--
 .../odbc/jdbc/JdbcQueryMetadataResult.java      | 15 ++++---
 .../odbc/jdbc/JdbcRawBinarylizable.java         |  8 +++-
 .../processors/odbc/jdbc/JdbcRequest.java       | 13 ++++--
 .../processors/odbc/jdbc/JdbcResponse.java      | 11 +++--
 .../processors/odbc/jdbc/JdbcResult.java        | 12 ++++--
 .../processors/odbc/jdbc/JdbcResultInfo.java    |  7 +++-
 .../processors/odbc/jdbc/JdbcTableMeta.java     |  7 +++-
 .../odbc/odbc/OdbcConnectionContext.java        |  2 +-
 .../processors/odbc/odbc/OdbcMessageParser.java |  4 +-
 .../h2/twostep/msg/GridH2QueryRequest.java      | 44 ++++++++++----------
 55 files changed, 466 insertions(+), 339 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
----------------------------------------------------------------------
diff --git 
a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
 
b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
index 51365f3..9512bae 100644
--- 
a/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
+++ 
b/modules/codegen/src/main/java/org/apache/ignite/codegen/MessageCodeGenerator.java
@@ -38,8 +38,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.UUID;
-import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxQueryEnlistRequest;
-import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxQueryResultsEnlistRequest;
 import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.internal.GridCodegenConverter;
 import org.apache.ignite.internal.GridDirectCollection;
@@ -170,7 +168,7 @@ public class MessageCodeGenerator {
 
 //        gen.generateAll(true);
 
-        gen.generateAndWrite(GridNearTxQueryResultsEnlistRequest.class);
+//        gen.generateAndWrite(GridNearTxQueryResultsEnlistRequest.class);
 
 //        gen.generateAndWrite(GridNearAtomicUpdateRequest.class);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
index 2c3f321..6155423 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
@@ -74,7 +74,7 @@ public class JdbcThinTcpIo {
     private static final ClientListenerProtocolVersion VER_2_7_0 = 
ClientListenerProtocolVersion.create(2, 7, 0);
 
     /** Current version. */
-    private static final ClientListenerProtocolVersion CURRENT_VER = VER_2_7_0;
+    public static final ClientListenerProtocolVersion CURRENT_VER = VER_2_7_0;
 
     /** Initial output stream capacity for handshake. */
     private static final int HANDSHAKE_MSG_SIZE = 13;
@@ -326,7 +326,9 @@ public class JdbcThinTcpIo {
         writer.writeBoolean(connProps.isAutoCloseServerCursor());
         writer.writeBoolean(connProps.isLazy());
         writer.writeBoolean(connProps.isSkipReducerOnUpdate());
-        writer.writeString(connProps.nestedTxMode());
+
+        if (ver.compareTo(VER_2_7_0) >= 0)
+            writer.writeString(connProps.nestedTxMode());
 
         if (!F.isEmpty(connProps.getUsername())) {
             assert ver.compareTo(VER_2_5_0) >= 0 : "Authentication is 
supported since 2.5";
@@ -375,15 +377,16 @@ public class JdbcThinTcpIo {
                     + ", url=" + connProps.getUrl() + ']', 
SqlStateCode.CONNECTION_REJECTED);
             }
 
-            if (VER_2_4_0.equals(srvProtocolVer)
-                    || VER_2_3_0.equals(srvProtocolVer)
-                    || VER_2_1_5.equals(srvProtocolVer))
-                handshake(srvProtocolVer);
-            else if (VER_2_1_0.equals(srvProtocolVer))
+            if (VER_2_5_0.equals(srvProtoVer0)
+                || VER_2_4_0.equals(srvProtoVer0)
+                || VER_2_3_0.equals(srvProtoVer0)
+                || VER_2_1_5.equals(srvProtoVer0))
+                handshake(srvProtoVer0);
+            else if (VER_2_1_0.equals(srvProtoVer0))
                 handshake_2_1_0();
             else {
                 throw new SQLException("Handshake failed [driverProtocolVer=" 
+ CURRENT_VER +
-                    ", remoteNodeProtocolVer=" + srvProtocolVer + ", err=" + 
err + ']',
+                    ", remoteNodeProtocolVer=" + srvProtoVer0 + ", err=" + err 
+ ']',
                     SqlStateCode.CONNECTION_REJECTED);
             }
         }
@@ -466,7 +469,7 @@ public class JdbcThinTcpIo {
             BinaryWriterExImpl writer = new BinaryWriterExImpl(null, new 
BinaryHeapOutputStream(cap),
                 null, null);
 
-            req.writeBinary(writer);
+            req.writeBinary(writer, srvProtocolVer);
 
             send(writer.array());
         }
@@ -500,7 +503,7 @@ public class JdbcThinTcpIo {
 
             BinaryWriterExImpl writer = new BinaryWriterExImpl(null, new 
BinaryHeapOutputStream(cap), null, null);
 
-            req.writeBinary(writer);
+            req.writeBinary(writer, srvProtocolVer);
 
             send(writer.array());
 
@@ -523,7 +526,7 @@ public class JdbcThinTcpIo {
 
         JdbcResponse res = new JdbcResponse();
 
-        res.readBinary(reader);
+        res.readBinary(reader, srvProtocolVer);
 
         return res;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index f515d57..b3c80b0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1662,7 +1662,7 @@ public class GridIoManager extends 
GridManagerAdapter<CommunicationSpi<Serializa
                     throw (ClusterTopologyCheckedException)e.getCause();
 
                 if (!ctx.discovery().alive(node))
-                    throw new ClusterTopologyCheckedException("Failed to send 
message, node left: " + node.id());
+                    throw new ClusterTopologyCheckedException("Failed to send 
message, node left: " + node.id(), e);
 
                 throw new IgniteCheckedException("Failed to send message (node 
may have left the grid or " +
                     "TCP connection cannot be established due to firewall 
issues) " +

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 2696c0e..b1908ff 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
@@ -397,37 +397,37 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 writer.incrementState();
 
             case 23:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
             case 24:
-                if (!writer.writeUuid("nearNodeId", nearNodeId))
+                if (!writer.writeMessage("partUpdateCnt", partUpdateCnt))
                     return false;
 
                 writer.incrementState();
 
             case 25:
-                if (!writer.writeMessage("partUpdateCnt", partUpdateCnt))
+                if (!writer.writeCollection("pendingVers", pendingVers, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 26:
-                if (!writer.writeCollection("pendingVers", pendingVers, 
MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
                 writer.incrementState();
 
             case 27:
-                if (!writer.writeMap("updCntrs", updCntrs, 
MessageCollectionItemType.INT, MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();
 
             case 28:
-                if (!writer.writeMessage("writeVer", writeVer))
+                if (!writer.writeMap("updCntrs", updCntrs, 
MessageCollectionItemType.INT, MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
@@ -469,7 +469,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 23:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -477,7 +477,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 24:
-                nearNodeId = reader.readUuid("nearNodeId");
+                partUpdateCnt = reader.readMessage("partUpdateCnt");
 
                 if (!reader.isLastRead())
                     return false;
@@ -485,7 +485,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 25:
-                partUpdateCnt = reader.readMessage("partUpdateCnt");
+                pendingVers = reader.readCollection("pendingVers", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -493,7 +493,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 26:
-                pendingVers = reader.readCollection("pendingVers", 
MessageCollectionItemType.MSG);
+                writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -501,7 +501,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 27:
-                updCntrs = reader.readMap("updCntrs", 
MessageCollectionItemType.INT, MessageCollectionItemType.MSG, false);
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;
@@ -509,7 +509,7 @@ public class GridDhtTxFinishRequest extends 
GridDistributedTxFinishRequest {
                 reader.incrementState();
 
             case 28:
-                writeVer = reader.readMessage("writeVer");
+                updCntrs = reader.readMap("updCntrs", 
MessageCollectionItemType.INT, MessageCollectionItemType.MSG, false);
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 a71fb6c..68c1f39 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
@@ -427,67 +427,67 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 writer.incrementState();
 
             case 23:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeUuid("nearNodeId", nearNodeId))
                     return false;
 
                 writer.incrementState();
 
             case 24:
-                if (!writer.writeUuid("nearNodeId", nearNodeId))
+                if (!writer.writeCollection("nearWrites", nearWrites, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 25:
-                if (!writer.writeCollection("nearWrites", nearWrites, 
MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("nearXidVer", nearXidVer))
                     return false;
 
                 writer.incrementState();
 
             case 26:
-                if (!writer.writeMessage("nearXidVer", nearXidVer))
+                if (!writer.writeCollection("ownedKeys", ownedKeys, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 27:
-                if (!writer.writeCollection("ownedKeys", ownedKeys, 
MessageCollectionItemType.MSG))
+                if (!writer.writeCollection("ownedVals", ownedVals, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 28:
-                if (!writer.writeCollection("ownedVals", ownedVals, 
MessageCollectionItemType.MSG))
+                if (!writer.writeBitSet("preloadKeys", preloadKeys))
                     return false;
 
                 writer.incrementState();
 
             case 29:
-                if (!writer.writeBitSet("preloadKeys", preloadKeys))
+                if (!writer.writeBoolean("skipCompletedVers", 
skipCompletedVers))
                     return false;
 
                 writer.incrementState();
 
             case 30:
-                if (!writer.writeBoolean("skipCompletedVers", 
skipCompletedVers))
+                if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
             case 31:
-                if (!writer.writeUuid("subjId", subjId))
+                if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
             case 32:
-                if (!writer.writeInt("taskNameHash", taskNameHash))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
             case 33:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();
@@ -533,7 +533,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 23:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                nearNodeId = reader.readUuid("nearNodeId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -541,7 +541,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 24:
-                nearNodeId = reader.readUuid("nearNodeId");
+                nearWrites = reader.readCollection("nearWrites", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -549,7 +549,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 25:
-                nearWrites = reader.readCollection("nearWrites", 
MessageCollectionItemType.MSG);
+                nearXidVer = reader.readMessage("nearXidVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -557,7 +557,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 26:
-                nearXidVer = reader.readMessage("nearXidVer");
+                ownedKeys = reader.readCollection("ownedKeys", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -565,7 +565,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 27:
-                ownedKeys = reader.readCollection("ownedKeys", 
MessageCollectionItemType.MSG);
+                ownedVals = reader.readCollection("ownedVals", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -573,7 +573,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 28:
-                ownedVals = reader.readCollection("ownedVals", 
MessageCollectionItemType.MSG);
+                preloadKeys = reader.readBitSet("preloadKeys");
 
                 if (!reader.isLastRead())
                     return false;
@@ -581,7 +581,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 29:
-                preloadKeys = reader.readBitSet("preloadKeys");
+                skipCompletedVers = reader.readBoolean("skipCompletedVers");
 
                 if (!reader.isLastRead())
                     return false;
@@ -589,7 +589,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 30:
-                skipCompletedVers = reader.readBoolean("skipCompletedVers");
+                subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -597,7 +597,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 31:
-                subjId = reader.readUuid("subjId");
+                taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
                     return false;
@@ -605,7 +605,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 32:
-                taskNameHash = reader.readInt("taskNameHash");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -613,7 +613,7 @@ public class GridDhtTxPrepareRequest extends 
GridDistributedTxPrepareRequest {
                 reader.incrementState();
 
             case 33:
-                topVer = reader.readMessage("topVer");
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 77d7eab..7998e07 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
@@ -474,61 +474,61 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
 
         switch (writer.state()) {
             case 5:
-                if (!writer.writeMessage("activeQryTrackers", 
activeQryTrackers))
+                if (!writer.writeBoolean("client", client))
                     return false;
 
                 writer.incrementState();
 
             case 6:
-                if (!writer.writeBoolean("client", client))
+                if (!writer.writeMap("dupPartsData", dupPartsData, 
MessageCollectionItemType.INT, MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
             case 7:
-                if (!writer.writeMap("dupPartsData", dupPartsData, 
MessageCollectionItemType.INT, MessageCollectionItemType.INT))
+                if (!writer.writeByteArray("errBytes", errBytes))
                     return false;
 
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeByteArray("errBytes", errBytes))
+                if (!writer.writeMessage("finishMsg", finishMsg))
                     return false;
 
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeMessage("finishMsg", finishMsg))
+                if (!writer.writeCollection("grpsAffRequest", grpsAffRequest, 
MessageCollectionItemType.INT))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("grpsAffRequest", grpsAffRequest, 
MessageCollectionItemType.INT))
+                if (!writer.writeByteArray("partCntrsBytes", partCntrsBytes))
                     return false;
 
                 writer.incrementState();
 
             case 11:
-                if (!writer.writeByteArray("partCntrsBytes", partCntrsBytes))
+                if (!writer.writeByteArray("partHistCntrsBytes", 
partHistCntrsBytes))
                     return false;
 
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeByteArray("partHistCntrsBytes", 
partHistCntrsBytes))
+                if (!writer.writeByteArray("partsBytes", partsBytes))
                     return false;
 
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeByteArray("partsBytes", partsBytes))
+                if (!writer.writeByteArray("partsSizesBytes", partsSizesBytes))
                     return false;
 
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeByteArray("partsSizesBytes", partsSizesBytes))
+                if (!writer.writeMessage("activeQryTrackers", 
activeQryTrackers))
                     return false;
 
                 writer.incrementState();
@@ -549,7 +549,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
 
         switch (reader.state()) {
             case 5:
-                activeQryTrackers = reader.readMessage("activeQryTrackers");
+                client = reader.readBoolean("client");
 
                 if (!reader.isLastRead())
                     return false;
@@ -557,7 +557,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 6:
-                client = reader.readBoolean("client");
+                dupPartsData = reader.readMap("dupPartsData", 
MessageCollectionItemType.INT, MessageCollectionItemType.INT, false);
 
                 if (!reader.isLastRead())
                     return false;
@@ -565,7 +565,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 7:
-                dupPartsData = reader.readMap("dupPartsData", 
MessageCollectionItemType.INT, MessageCollectionItemType.INT, false);
+                errBytes = reader.readByteArray("errBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -573,7 +573,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 8:
-                errBytes = reader.readByteArray("errBytes");
+                finishMsg = reader.readMessage("finishMsg");
 
                 if (!reader.isLastRead())
                     return false;
@@ -581,7 +581,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 9:
-                finishMsg = reader.readMessage("finishMsg");
+                grpsAffRequest = reader.readCollection("grpsAffRequest", 
MessageCollectionItemType.INT);
 
                 if (!reader.isLastRead())
                     return false;
@@ -589,7 +589,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 10:
-                grpsAffRequest = reader.readCollection("grpsAffRequest", 
MessageCollectionItemType.INT);
+                partCntrsBytes = reader.readByteArray("partCntrsBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -597,7 +597,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 11:
-                partCntrsBytes = reader.readByteArray("partCntrsBytes");
+                partHistCntrsBytes = 
reader.readByteArray("partHistCntrsBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -605,7 +605,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 12:
-                partHistCntrsBytes = 
reader.readByteArray("partHistCntrsBytes");
+                partsBytes = reader.readByteArray("partsBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -613,7 +613,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 13:
-                partsBytes = reader.readByteArray("partsBytes");
+                partsSizesBytes = reader.readByteArray("partsSizesBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -621,7 +621,7 @@ public class GridDhtPartitionsSingleMessage extends 
GridDhtPartitionsAbstractMes
                 reader.incrementState();
 
             case 14:
-                partsSizesBytes = reader.readByteArray("partsSizesBytes");
+                activeQryTrackers = reader.readMessage("activeQryTrackers");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 c891bfb..f594e2b 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
@@ -397,37 +397,37 @@ public class GridNearGetRequest extends 
GridCacheIdMessage implements GridCacheD
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeCollection("readersFlags", readersFlags, 
MessageCollectionItemType.BOOLEAN))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeCollection("readersFlags", readersFlags, 
MessageCollectionItemType.BOOLEAN))
+                if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
             case 11:
-                if (!writer.writeUuid("subjId", subjId))
+                if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
             case 12:
-                if (!writer.writeInt("taskNameHash", taskNameHash))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
             case 13:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeMessage("ver", ver))
                     return false;
 
                 writer.incrementState();
 
             case 14:
-                if (!writer.writeMessage("ver", ver))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();
@@ -497,7 +497,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 9:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                readersFlags = reader.readCollection("readersFlags", 
MessageCollectionItemType.BOOLEAN);
 
                 if (!reader.isLastRead())
                     return false;
@@ -505,7 +505,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 10:
-                readersFlags = reader.readCollection("readersFlags", 
MessageCollectionItemType.BOOLEAN);
+                subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -513,7 +513,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 11:
-                subjId = reader.readUuid("subjId");
+                taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
                     return false;
@@ -521,7 +521,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 12:
-                taskNameHash = reader.readInt("taskNameHash");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -529,7 +529,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 13:
-                topVer = reader.readMessage("topVer");
+                ver = reader.readMessage("ver");
 
                 if (!reader.isLastRead())
                     return false;
@@ -537,7 +537,7 @@ public class GridNearGetRequest extends GridCacheIdMessage 
implements GridCacheD
                 reader.incrementState();
 
             case 14:
-                ver = reader.readMessage("ver");
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java
index d1aa2e9..cf885e2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearSingleGetRequest.java
@@ -337,7 +337,7 @@ public class GridNearSingleGetRequest extends 
GridCacheIdMessage implements Grid
                 reader.incrementState();
 
             case 8:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -345,7 +345,7 @@ public class GridNearSingleGetRequest extends 
GridCacheIdMessage implements Grid
                 reader.incrementState();
 
             case 9:
-                subjId = reader.readUuid("subjId");
+                taskNameHash = reader.readInt("taskNameHash");
 
                 if (!reader.isLastRead())
                     return false;
@@ -353,7 +353,7 @@ public class GridNearSingleGetRequest extends 
GridCacheIdMessage implements Grid
                 reader.incrementState();
 
             case 10:
-                taskNameHash = reader.readInt("taskNameHash");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -361,7 +361,7 @@ public class GridNearSingleGetRequest extends 
GridCacheIdMessage implements Grid
                 reader.incrementState();
 
             case 11:
-                topVer = reader.readMessage("topVer");
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;
@@ -419,25 +419,25 @@ public class GridNearSingleGetRequest extends 
GridCacheIdMessage implements Grid
                 writer.incrementState();
 
             case 8:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
             case 9:
-                if (!writer.writeUuid("subjId", subjId))
+                if (!writer.writeInt("taskNameHash", taskNameHash))
                     return false;
 
                 writer.incrementState();
 
             case 10:
-                if (!writer.writeInt("taskNameHash", taskNameHash))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
             case 11:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 92db463..e9865df 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
@@ -407,37 +407,37 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 writer.incrementState();
 
             case 15:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeCollection("ownedValKeys", ownedValKeys, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 16:
-                if (!writer.writeCollection("ownedValKeys", ownedValKeys, 
MessageCollectionItemType.MSG))
+                if (!writer.writeCollection("ownedValVals", ownedValVals, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 17:
-                if (!writer.writeCollection("ownedValVals", ownedValVals, 
MessageCollectionItemType.MSG))
+                if (!writer.writeCollection("pending", pending, 
MessageCollectionItemType.MSG))
                     return false;
 
                 writer.incrementState();
 
             case 18:
-                if (!writer.writeCollection("pending", pending, 
MessageCollectionItemType.MSG))
+                if (!writer.writeMessage("retVal", retVal))
                     return false;
 
                 writer.incrementState();
 
             case 19:
-                if (!writer.writeMessage("retVal", retVal))
+                if (!writer.writeMessage("writeVer", writeVer))
                     return false;
 
                 writer.incrementState();
 
             case 20:
-                if (!writer.writeMessage("writeVer", writeVer))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();
@@ -499,7 +499,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 15:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                ownedValKeys = reader.readCollection("ownedValKeys", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -507,7 +507,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 16:
-                ownedValKeys = reader.readCollection("ownedValKeys", 
MessageCollectionItemType.MSG);
+                ownedValVals = reader.readCollection("ownedValVals", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -515,7 +515,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 17:
-                ownedValVals = reader.readCollection("ownedValVals", 
MessageCollectionItemType.MSG);
+                pending = reader.readCollection("pending", 
MessageCollectionItemType.MSG);
 
                 if (!reader.isLastRead())
                     return false;
@@ -523,7 +523,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 18:
-                pending = reader.readCollection("pending", 
MessageCollectionItemType.MSG);
+                retVal = reader.readMessage("retVal");
 
                 if (!reader.isLastRead())
                     return false;
@@ -531,7 +531,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 19:
-                retVal = reader.readMessage("retVal");
+                writeVer = reader.readMessage("writeVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -539,7 +539,7 @@ public class GridNearTxPrepareResponse extends 
GridDistributedTxPrepareResponse
                 reader.incrementState();
 
             case 20:
-                writeVer = reader.readMessage("writeVer");
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/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 ebbca35..b7205b6 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
@@ -586,55 +586,55 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 writer.incrementState();
 
             case 15:
-                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
+                if (!writer.writeInt("pageSize", pageSize))
                     return false;
 
                 writer.incrementState();
 
             case 16:
-                if (!writer.writeInt("pageSize", pageSize))
+                if (!writer.writeInt("part", part))
                     return false;
 
                 writer.incrementState();
 
             case 17:
-                if (!writer.writeInt("part", part))
+                if (!writer.writeByteArray("rdcBytes", rdcBytes))
                     return false;
 
                 writer.incrementState();
 
             case 18:
-                if (!writer.writeByteArray("rdcBytes", rdcBytes))
+                if (!writer.writeUuid("subjId", subjId))
                     return false;
 
                 writer.incrementState();
 
             case 19:
-                if (!writer.writeUuid("subjId", subjId))
+                if (!writer.writeInt("taskHash", taskHash))
                     return false;
 
                 writer.incrementState();
 
             case 20:
-                if (!writer.writeInt("taskHash", taskHash))
+                if (!writer.writeMessage("topVer", topVer))
                     return false;
 
                 writer.incrementState();
 
             case 21:
-                if (!writer.writeMessage("topVer", topVer))
+                if (!writer.writeByteArray("transBytes", transBytes))
                     return false;
 
                 writer.incrementState();
 
             case 22:
-                if (!writer.writeByteArray("transBytes", transBytes))
+                if (!writer.writeByte("type", type != null ? 
(byte)type.ordinal() : -1))
                     return false;
 
                 writer.incrementState();
 
             case 23:
-                if (!writer.writeByte("type", type != null ? 
(byte)type.ordinal() : -1))
+                if (!writer.writeMessage("mvccSnapshot", mvccSnapshot))
                     return false;
 
                 writer.incrementState();
@@ -752,7 +752,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 15:
-                mvccSnapshot = reader.readMessage("mvccSnapshot");
+                pageSize = reader.readInt("pageSize");
 
                 if (!reader.isLastRead())
                     return false;
@@ -760,7 +760,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 16:
-                pageSize = reader.readInt("pageSize");
+                part = reader.readInt("part");
 
                 if (!reader.isLastRead())
                     return false;
@@ -768,7 +768,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 17:
-                part = reader.readInt("part");
+                rdcBytes = reader.readByteArray("rdcBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -776,7 +776,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 18:
-                rdcBytes = reader.readByteArray("rdcBytes");
+                subjId = reader.readUuid("subjId");
 
                 if (!reader.isLastRead())
                     return false;
@@ -784,7 +784,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 19:
-                subjId = reader.readUuid("subjId");
+                taskHash = reader.readInt("taskHash");
 
                 if (!reader.isLastRead())
                     return false;
@@ -792,7 +792,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 20:
-                taskHash = reader.readInt("taskHash");
+                topVer = reader.readMessage("topVer");
 
                 if (!reader.isLastRead())
                     return false;
@@ -800,7 +800,7 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 21:
-                topVer = reader.readMessage("topVer");
+                transBytes = reader.readByteArray("transBytes");
 
                 if (!reader.isLastRead())
                     return false;
@@ -808,23 +808,23 @@ public class GridCacheQueryRequest extends 
GridCacheIdMessage implements GridCac
                 reader.incrementState();
 
             case 22:
-                transBytes = reader.readByteArray("transBytes");
+                byte typeOrd;
+
+                typeOrd = reader.readByte("type");
 
                 if (!reader.isLastRead())
                     return false;
 
+                type = GridCacheQueryType.fromOrdinal(typeOrd);
+
                 reader.incrementState();
 
             case 23:
-                byte typeOrd;
-
-                typeOrd = reader.readByte("type");
+                mvccSnapshot = reader.readMessage("mvccSnapshot");
 
                 if (!reader.isLastRead())
                     return false;
 
-                type = GridCacheQueryType.fromOrdinal(typeOrd);
-
                 reader.incrementState();
 
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteRequest.java
index 065a298..404a1c9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteRequest.java
@@ -17,17 +17,20 @@
 
 package org.apache.ignite.internal.processors.odbc.jdbc;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.tostring.GridToStringInclude;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.jetbrains.annotations.Nullable;
 
+import static 
org.apache.ignite.internal.processors.odbc.jdbc.JdbcConnectionContext.VER_2_4_0;
+import static 
org.apache.ignite.internal.processors.odbc.jdbc.JdbcConnectionContext.VER_2_7_0;
+
 /**
  * JDBC batch execute request.
  */
@@ -129,8 +132,8 @@ public class JdbcBatchExecuteRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer, 
ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeString(schemaName);
 
@@ -138,20 +141,23 @@ public class JdbcBatchExecuteRequest extends JdbcRequest {
             writer.writeInt(queries.size());
 
             for (JdbcQuery q : queries)
-                q.writeBinary(writer);
+                q.writeBinary(writer, ver);
 
         }
         else
             writer.writeInt(0);
 
-        writer.writeBoolean(autoCommit);
-        writer.writeBoolean(lastStreamBatch);
+        if (ver.compareTo(VER_2_4_0) >= 0)
+            writer.writeBoolean(lastStreamBatch);
+
+        if (ver.compareTo(VER_2_7_0) >= 0)
+            writer.writeBoolean(autoCommit);
     }
 
     /** {@inheritDoc} */
     @SuppressWarnings("SimplifiableIfStatement")
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader, 
ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         schemaName = reader.readString();
 
@@ -162,22 +168,16 @@ public class JdbcBatchExecuteRequest extends JdbcRequest {
         for (int i = 0; i < n; ++i) {
             JdbcQuery qry = new JdbcQuery();
 
-            qry.readBinary(reader);
+            qry.readBinary(reader, ver);
 
             queries.add(qry);
         }
 
-        try {
-            if (reader.available() > 0) {
-                autoCommit = reader.readBoolean();
-                lastStreamBatch = reader.readBoolean();
-            }
-            else
-                autoCommit = true;
-        }
-        catch (IOException e) {
-            throw new BinaryObjectException(e);
-        }
+        if (ver.compareTo(VER_2_4_0) >= 0)
+            lastStreamBatch = reader.readBoolean();
+
+        if (ver.compareTo(VER_2_7_0) >= 0)
+            autoCommit = reader.readBoolean();
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteResult.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteResult.java
index 3fc9dd7..0d93244e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBatchExecuteResult.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 /**
@@ -97,8 +98,9 @@ public class JdbcBatchExecuteResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeInt(errCode);
         writer.writeString(errMsg);
@@ -107,8 +109,9 @@ public class JdbcBatchExecuteResult extends JdbcResult {
 
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         errCode = reader.readInt();
         errMsg = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadAckResult.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadAckResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadAckResult.java
index e670baf..b0750fd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadAckResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadAckResult.java
@@ -21,6 +21,7 @@ import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
 import 
org.apache.ignite.internal.processors.bulkload.BulkLoadAckClientParameters;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.sql.command.SqlBulkLoadCommand;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
@@ -81,8 +82,9 @@ public class JdbcBulkLoadAckResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeLong(qryId);
         writer.writeString(params.localFileName());
@@ -90,8 +92,9 @@ public class JdbcBulkLoadAckResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         qryId = reader.readLong();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadBatchRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadBatchRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadBatchRequest.java
index 7db4951..347a5df 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadBatchRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcBulkLoadBatchRequest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.sql.command.SqlBulkLoadCommand;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.jetbrains.annotations.NotNull;
@@ -143,8 +144,9 @@ public class JdbcBulkLoadBatchRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeLong(qryId);
         writer.writeInt(batchIdx);
@@ -153,8 +155,9 @@ public class JdbcBulkLoadBatchRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         qryId = reader.readLong();
         batchIdx = reader.readInt();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMeta.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMeta.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMeta.java
index 5b6304d..2b08fb4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMeta.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMeta.java
@@ -21,6 +21,7 @@ import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
 import org.apache.ignite.internal.jdbc.thin.JdbcThinUtils;
 import org.apache.ignite.internal.jdbc2.JdbcUtils;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -158,7 +159,8 @@ public class JdbcColumnMeta implements JdbcRawBinarylizable 
{
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) {
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) {
         writer.writeString(schemaName);
         writer.writeString(tblName);
         writer.writeString(colName);
@@ -169,7 +171,8 @@ public class JdbcColumnMeta implements JdbcRawBinarylizable 
{
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) {
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) {
         schemaName = reader.readString();
         tblName = reader.readString();
         colName = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV2.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV2.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV2.java
index a2b4acf..6c77b55 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV2.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV2.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 /**
@@ -54,15 +55,17 @@ public class JdbcColumnMetaV2 extends JdbcColumnMeta{
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) {
+        super.writeBinary(writer, ver);
 
         writer.writeBoolean(nullable);
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) {
+        super.readBinary(reader, ver);
 
         nullable = reader.readBoolean();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV3.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV3.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV3.java
index 9911be0..8f8adfe 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV3.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV3.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 /**
@@ -63,15 +64,17 @@ public class JdbcColumnMetaV3 extends JdbcColumnMetaV2 {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) {
+        super.writeBinary(writer, ver);
 
         writer.writeString(dfltValue);
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) {
+        super.readBinary(reader, ver);
 
         dfltValue = reader.readString();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV4.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV4.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV4.java
index ec76983..6bdc597 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV4.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcColumnMetaV4.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 /**
@@ -68,16 +69,18 @@ public class JdbcColumnMetaV4 extends JdbcColumnMetaV3 {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) {
+        super.writeBinary(writer, ver);
 
         writer.writeInt(precision);
         writer.writeInt(scale);
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) {
+        super.readBinary(reader, ver);
 
         precision = reader.readInt();
         scale = reader.readInt();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcConnectionContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcConnectionContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcConnectionContext.java
index 9f3fe2a..5e9a1b3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcConnectionContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcConnectionContext.java
@@ -142,7 +142,7 @@ public class JdbcConnectionContext extends 
ClientListenerAbstractConnectionConte
         if (ver.compareTo(VER_2_3_0) >= 0)
             skipReducerOnUpdate = reader.readBoolean();
 
-        if (ver.compareTo(VER_2_5_0) >= 0) {
+        if (ver.compareTo(VER_2_7_0) >= 0) {
             String nestedTxModeName = reader.readString();
 
             if (!F.isEmpty(nestedTxModeName)) {
@@ -153,7 +153,9 @@ public class JdbcConnectionContext extends 
ClientListenerAbstractConnectionConte
                     throw new IgniteCheckedException("Invalid nested 
transactions handling mode: " + nestedTxModeName);
                 }
             }
+        }
 
+        if (ver.compareTo(VER_2_5_0) >= 0) {
             String user = null;
             String passwd = null;
 
@@ -170,7 +172,7 @@ public class JdbcConnectionContext extends 
ClientListenerAbstractConnectionConte
             actx = authenticate(user, passwd);
         }
 
-        parser = new JdbcMessageParser(ctx);
+        parser = new JdbcMessageParser(ctx, ver);
 
         JdbcResponseSender sender = new JdbcResponseSender() {
             @Override public void send(ClientListenerResponse resp) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcIndexMeta.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcIndexMeta.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcIndexMeta.java
index d33f887..d7de6d7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcIndexMeta.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcIndexMeta.java
@@ -24,6 +24,7 @@ import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.cache.QueryIndexType;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.processors.query.GridQueryIndexDescriptor;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -123,7 +124,8 @@ public class JdbcIndexMeta implements JdbcRawBinarylizable {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
         writer.writeString(schemaName);
         writer.writeString(tblName);
         writer.writeString(idxName);
@@ -142,7 +144,8 @@ public class JdbcIndexMeta implements JdbcRawBinarylizable {
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
         schemaName = reader.readString();
         tblName = reader.readString();
         idxName = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMessageParser.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMessageParser.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMessageParser.java
index 7a9c2ab..1718c00 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMessageParser.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMessageParser.java
@@ -24,6 +24,7 @@ import 
org.apache.ignite.internal.binary.streams.BinaryHeapInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream;
 import org.apache.ignite.internal.binary.streams.BinaryInputStream;
 import org.apache.ignite.internal.processors.odbc.ClientListenerMessageParser;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.processors.odbc.ClientListenerRequest;
 import org.apache.ignite.internal.processors.odbc.ClientListenerResponse;
 
@@ -34,14 +35,20 @@ public class JdbcMessageParser implements 
ClientListenerMessageParser {
     /** Kernal context. */
     private final GridKernalContext ctx;
 
+    /** Client protocol version. */
+    private final ClientListenerProtocolVersion ver;
+
     /** Initial output stream capacity. */
     protected static final int INIT_CAP = 1024;
 
     /**
      * @param ctx Context.
+     * @param ver Client protocol version.
      */
-    public JdbcMessageParser(GridKernalContext ctx) {
+    public JdbcMessageParser(GridKernalContext ctx,
+        ClientListenerProtocolVersion ver) {
         this.ctx = ctx;
+        this.ver = ver;
     }
 
     /**
@@ -68,7 +75,7 @@ public class JdbcMessageParser implements 
ClientListenerMessageParser {
 
         BinaryReaderExImpl reader = createReader(msg);
 
-        return JdbcRequest.readRequest(reader);
+        return JdbcRequest.readRequest(reader, ver);
     }
 
     /** {@inheritDoc} */
@@ -81,7 +88,7 @@ public class JdbcMessageParser implements 
ClientListenerMessageParser {
 
         BinaryWriterExImpl writer = createWriter(INIT_CAP);
 
-        res.writeBinary(writer);
+        res.writeBinary(writer, ver);
 
         return writer.array();
     }}

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsRequest.java
index fca1bf7..389629e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsRequest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.jetbrains.annotations.Nullable;
 
@@ -78,8 +79,9 @@ public class JdbcMetaColumnsRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeString(schemaName);
         writer.writeString(tblName);
@@ -87,8 +89,9 @@ public class JdbcMetaColumnsRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         schemaName = reader.readString();
         tblName = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsResult.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsResult.java
index 9931ce0..199c76d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaColumnsResult.java
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
@@ -77,8 +78,9 @@ public class JdbcMetaColumnsResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         if (F.isEmpty(meta))
             writer.writeInt(0);
@@ -86,13 +88,14 @@ public class JdbcMetaColumnsResult extends JdbcResult {
             writer.writeInt(meta.size());
 
             for(JdbcColumnMeta m : meta)
-                m.writeBinary(writer);
+                m.writeBinary(writer, ver);
         }
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         int size = reader.readInt();
 
@@ -104,7 +107,7 @@ public class JdbcMetaColumnsResult extends JdbcResult {
             for (int i = 0; i < size; ++i) {
                 JdbcColumnMeta m = createMetaColumn();
 
-                m.readBinary(reader);
+                m.readBinary(reader, ver);
 
                 meta.add(m);
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesRequest.java
index d4a53d8..28fe558 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesRequest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.jetbrains.annotations.Nullable;
 
@@ -66,16 +67,18 @@ public class JdbcMetaIndexesRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeString(schemaName);
         writer.writeString(tblName);
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         schemaName = reader.readString();
         tblName = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesResult.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesResult.java
index 2316dfc..b180954 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaIndexesResult.java
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
@@ -57,8 +58,9 @@ public class JdbcMetaIndexesResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         if (F.isEmpty(meta))
             writer.writeInt(0);
@@ -66,13 +68,14 @@ public class JdbcMetaIndexesResult extends JdbcResult {
             writer.writeInt(meta.size());
 
             for(JdbcIndexMeta m : meta)
-                m.writeBinary(writer);
+                m.writeBinary(writer, ver);
         }
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         int size = reader.readInt();
 
@@ -84,7 +87,7 @@ public class JdbcMetaIndexesResult extends JdbcResult {
             for (int i = 0; i < size; ++i) {
                 JdbcIndexMeta m = new JdbcIndexMeta();
 
-                m.readBinary(reader);
+                m.readBinary(reader, ver);
 
                 meta.add(m);
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsRequest.java
index 6b955f9..360f17d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsRequest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.odbc.jdbc;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
 /**
@@ -65,16 +66,18 @@ public class JdbcMetaParamsRequest extends JdbcRequest {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         writer.writeString(schemaName);
         writer.writeString(sql);
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         schemaName = reader.readString();
         sql = reader.readString();

http://git-wip-us.apache.org/repos/asf/ignite/blob/469fb49e/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsResult.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsResult.java
index 7563e01..43c2422 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcMetaParamsResult.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
 import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import 
org.apache.ignite.internal.processors.odbc.ClientListenerProtocolVersion;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
@@ -49,8 +50,9 @@ public class JdbcMetaParamsResult extends JdbcResult {
     }
 
     /** {@inheritDoc} */
-    @Override public void writeBinary(BinaryWriterExImpl writer) throws 
BinaryObjectException {
-        super.writeBinary(writer);
+    @Override public void writeBinary(BinaryWriterExImpl writer,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.writeBinary(writer, ver);
 
         if (F.isEmpty(meta))
             writer.writeInt(0);
@@ -58,13 +60,14 @@ public class JdbcMetaParamsResult extends JdbcResult {
             writer.writeInt(meta.size());
 
             for(JdbcParameterMeta m : meta)
-                m.writeBinary(writer);
+                m.writeBinary(writer, ver);
         }
     }
 
     /** {@inheritDoc} */
-    @Override public void readBinary(BinaryReaderExImpl reader) throws 
BinaryObjectException {
-        super.readBinary(reader);
+    @Override public void readBinary(BinaryReaderExImpl reader,
+        ClientListenerProtocolVersion ver) throws BinaryObjectException {
+        super.readBinary(reader, ver);
 
         int size = reader.readInt();
 
@@ -76,7 +79,7 @@ public class JdbcMetaParamsResult extends JdbcResult {
             for (int i = 0; i < size; ++i) {
                 JdbcParameterMeta m = new JdbcParameterMeta();
 
-                m.readBinary(reader);
+                m.readBinary(reader, ver);
 
                 meta.add(m);
             }

Reply via email to