From 41ec399ddca77bd0cf95bc9b01f39e2af5d0cdee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20de=20Launois?= Date: Fri, 9 Feb 2024 08:01:00 +0100 Subject: [PATCH] Fix UUID serialisation --- src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java | 1 + src/main/java/com/microsoft/sqlserver/jdbc/dtv.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java b/src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java index 067e375b2..7ae6572f3 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/IOBuffer.java @@ -4800,6 +4800,7 @@ void writeRPCUUID(String sName, UUID uuidValue, boolean bOut) throws SQLServerEx if (uuidValue == null) { writeByte((byte) 0); + writeByte((byte) 0); } else { writeByte((byte) 0x10); // maximum length = 16 diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java index e4cc1d4a0..32a1c7626 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/dtv.java @@ -295,8 +295,9 @@ final class SendByRPCOp extends DTVExecuteOp { void execute(DTV dtv, String strValue) throws SQLServerException { if (dtv.getJdbcType() == JDBCType.GUID) { tdsWriter.writeRPCUUID(name, UUID.fromString(strValue), isOutParam); + } else { + tdsWriter.writeRPCStringUnicode(name, strValue, isOutParam, collation, dtv.isNonPLP); } - tdsWriter.writeRPCStringUnicode(name, strValue, isOutParam, collation, dtv.isNonPLP); } void execute(DTV dtv, Clob clobValue) throws SQLServerException {