Repository: ignite Updated Branches: refs/heads/master bebe4d872 -> d22631e64
IGNITE-6169: Fixed thin JDBC driver compatibility problem. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d22631e6 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d22631e6 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d22631e6 Branch: refs/heads/master Commit: d22631e647280eff9f661dd7cfd492a6ba7460af Parents: bebe4d8 Author: tledkov-gridgain <[email protected]> Authored: Wed Aug 23 15:46:23 2017 +0300 Committer: devozerov <[email protected]> Committed: Wed Aug 23 15:46:23 2017 +0300 ---------------------------------------------------------------------- .../internal/jdbc/thin/JdbcThinTcpIo.java | 37 +++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d22631e6/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 e124921..fdec77e 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 @@ -219,30 +219,33 @@ public class JdbcThinTcpIo { boolean accepted = reader.readBoolean(); if (accepted) { - byte maj = reader.readByte(); - byte min = reader.readByte(); - byte maintenance = reader.readByte(); + if (reader.available() > 0) { + byte maj = reader.readByte(); + byte min = reader.readByte(); + byte maintenance = reader.readByte(); - String stage = reader.readString(); + String stage = reader.readString(); - long ts = reader.readLong(); - byte[] hash = reader.readByteArray(); + long ts = reader.readLong(); + byte[] hash = reader.readByteArray(); - igniteVer = new IgniteProductVersion(maj, min, maintenance, stage, ts, hash); - - return; + igniteVer = new IgniteProductVersion(maj, min, maintenance, stage, ts, hash); + } + else + igniteVer = new IgniteProductVersion((byte)2, (byte)0, (byte)0, "Unknown", 0L, null); } + else { + short maj = reader.readShort(); + short min = reader.readShort(); + short maintenance = reader.readShort(); - short maj = reader.readShort(); - short min = reader.readShort(); - short maintenance = reader.readShort(); + String err = reader.readString(); - String err = reader.readString(); + SqlListenerProtocolVersion ver = SqlListenerProtocolVersion.create(maj, min, maintenance); - SqlListenerProtocolVersion ver = SqlListenerProtocolVersion.create(maj, min, maintenance); - - throw new IgniteCheckedException("Handshake failed [driverProtocolVer=" + CURRENT_VER + - ", remoteNodeProtocolVer=" + ver + ", err=" + err + ']'); + throw new IgniteCheckedException("Handshake failed [driverProtocolVer=" + CURRENT_VER + + ", remoteNodeProtocolVer=" + ver + ", err=" + err + ']'); + } } /**
