From 0e430d202c09e647f44fa234c230b7c01828713c Mon Sep 17 00:00:00 2001 From: v-reye Date: Thu, 6 Dec 2018 10:23:04 -0800 Subject: [PATCH] Tds token error (#17) --- .../sqlserver/jdbc/IdleConnectionResiliency.java | 14 +++++++------- .../sqlserver/jdbc/SQLServerConnection.java | 14 +++++--------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/IdleConnectionResiliency.java b/src/main/java/com/microsoft/sqlserver/jdbc/IdleConnectionResiliency.java index f07662400..237d881e2 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/IdleConnectionResiliency.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/IdleConnectionResiliency.java @@ -151,7 +151,7 @@ int getLoginTimeoutSeconds() { class SessionStateValue { private boolean isRecoverable; private int sequenceNumber; - private int dataLengh; + private int dataLength; private byte[] data; boolean isSequenceNumberGreater(int sequenceNumberToBeCompared) { @@ -200,12 +200,12 @@ void setSequenceNumber(int sequenceNumber) { this.sequenceNumber = sequenceNumber; } - int getDataLengh() { - return dataLengh; + int getDataLength() { + return dataLength; } - void setDataLengh(int dataLengh) { - this.dataLengh = dataLengh; + void setDataLengh(int dataLength) { + this.dataLength = dataLength; } byte[] getData() { @@ -282,8 +282,8 @@ int getDeltaLength() { int length = 0; for (int i = 0; i < SESSION_STATE_ID_MAX; i++) { if (sessionStateDelta[i] != null && sessionStateDelta[i].getData() != null) { - length += (1/* state id */ + (sessionStateDelta[i].getDataLengh() < 0xFF ? 1 : 5)/* Data length */ - + sessionStateDelta[i].getDataLengh()); + length += (1/* state id */ + (sessionStateDelta[i].getDataLength() < 0xFF ? 1 : 5)/* Data length */ + + sessionStateDelta[i].getDataLength()); } } return length; diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java index 4414466e6..f080cfce6 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java @@ -3755,7 +3755,7 @@ int writeSessionRecoveryFeatureRequest(boolean write, TDSWriter tdsWriter) throw int initialLength = 0; initialLength += 1 + 2 * ssTable.getOriginalCatalog().length(); initialLength += 1 + 2 * ssTable.getOriginalLanguage().length(); - initialLength += 1 + (databaseCollation == null ? 0 : SQLCollation.tdsLength()); + initialLength += 1 + (ssTable.getOriginalCollation() == null ? 0 : SQLCollation.tdsLength()); initialLength += ssTable.getInitialLength(); int currentLength = 0; @@ -3802,7 +3802,7 @@ int writeSessionRecoveryFeatureRequest(boolean write, TDSWriter tdsWriter) throw } // collation - if (databaseCollation != null && databaseCollation.isEqual(ssTable.getOriginalCollation())) { + if (databaseCollation == null || databaseCollation.isEqual(ssTable.getOriginalCollation())) { tdsWriter.writeByte((byte) 0); } else { tdsWriter.writeByte((byte) SQLCollation.tdsLength()); @@ -3822,11 +3822,11 @@ int writeSessionRecoveryFeatureRequest(boolean write, TDSWriter tdsWriter) throw if (ssTable.getSessionStateDelta()[i] != null && ssTable.getSessionStateDelta()[i].getData() != null) { tdsWriter.writeByte((byte) i); // state id - if (ssTable.getSessionStateDelta()[i].getDataLengh() >= 0xFF) { + if (ssTable.getSessionStateDelta()[i].getDataLength() >= 0xFF) { tdsWriter.writeByte((byte) 0xFF); - tdsWriter.writeShort((short) ssTable.getSessionStateDelta()[i].getDataLengh()); + tdsWriter.writeShort((short) ssTable.getSessionStateDelta()[i].getDataLength()); } else - tdsWriter.writeByte((byte) (ssTable.getSessionStateDelta()[i].getDataLengh())); + tdsWriter.writeByte((byte) (ssTable.getSessionStateDelta()[i].getDataLength())); tdsWriter.writeBytes(ssTable.getSessionStateDelta()[i].getData()); // state value } } @@ -4549,10 +4549,6 @@ final void processFeatureExtAck(TDSReader tdsReader) throws SQLServerException { } private void onFeatureExtAck(byte featureId, TDSReader tdsReader) throws SQLServerException { - if (null != routingInfo) { - return; - } - int dataLen; byte[] data = null;