From 6f55fd1639e918e3d0ad402d703e76ba8d6c412b Mon Sep 17 00:00:00 2001
From: Viktor Hofer <viktor.hofer@microsoft.com>
Date: Thu, 9 Jan 2025 08:54:39 +0100
Subject: [PATCH 01/11] Use the latest available jdk

---
 global.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/global.json b/global.json
index c1270224e337..bd7a41270d9f 100644
--- a/global.json
+++ b/global.json
@@ -24,7 +24,7 @@
     "xcopy-msbuild": "17.8.5"
   },
   "native-tools": {
-    "jdk": "11.0.24"
+    "jdk": "latest"
   },
   "msbuild-sdks": {
     "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1",

From 3a3c11b2a0d2fc26c77323f6c275b9273238254c Mon Sep 17 00:00:00 2001
From: Viktor Hofer <viktor.hofer@microsoft.com>
Date: Thu, 9 Jan 2025 10:56:16 +0100
Subject: [PATCH 02/11] Specify toolchain in build.gradle files

---
 src/SignalR/clients/java/signalr/build.gradle             | 6 ++++++
 src/SignalR/clients/java/signalr/core/build.gradle        | 3 +++
 src/SignalR/clients/java/signalr/messagepack/build.gradle | 3 +++
 src/SignalR/clients/java/signalr/test/build.gradle        | 6 ++++++
 4 files changed, 18 insertions(+)

diff --git a/src/SignalR/clients/java/signalr/build.gradle b/src/SignalR/clients/java/signalr/build.gradle
index 895f8c4338d3..756040953653 100644
--- a/src/SignalR/clients/java/signalr/build.gradle
+++ b/src/SignalR/clients/java/signalr/build.gradle
@@ -14,6 +14,12 @@ plugins {
     id 'maven-publish'
 }
 
+java {
+    toolchain {
+        languageVersion = JavaLanguageVersion.of(17)
+    }
+}
+
 allprojects {
     apply plugin: "java-library"
     apply plugin: "com.diffplug.spotless"
diff --git a/src/SignalR/clients/java/signalr/core/build.gradle b/src/SignalR/clients/java/signalr/core/build.gradle
index b719ae0cffe9..89ca05f43732 100644
--- a/src/SignalR/clients/java/signalr/core/build.gradle
+++ b/src/SignalR/clients/java/signalr/core/build.gradle
@@ -6,6 +6,9 @@ plugins {
 group 'com.microsoft.signalr'
 
 java {
+    toolchain {
+        languageVersion = JavaLanguageVersion.of(17)
+    }
     withJavadocJar()
     withSourcesJar()
 }
diff --git a/src/SignalR/clients/java/signalr/messagepack/build.gradle b/src/SignalR/clients/java/signalr/messagepack/build.gradle
index 159ddba3bc82..6a040140133f 100644
--- a/src/SignalR/clients/java/signalr/messagepack/build.gradle
+++ b/src/SignalR/clients/java/signalr/messagepack/build.gradle
@@ -7,6 +7,9 @@ group 'com.microsoft.signalr.messagepack'
 
 java
 {
+    toolchain {
+        languageVersion = JavaLanguageVersion.of(17)
+    }
     withJavadocJar()
     withSourcesJar()
 }
diff --git a/src/SignalR/clients/java/signalr/test/build.gradle b/src/SignalR/clients/java/signalr/test/build.gradle
index 27b81b32c947..51229fd04038 100644
--- a/src/SignalR/clients/java/signalr/test/build.gradle
+++ b/src/SignalR/clients/java/signalr/test/build.gradle
@@ -2,6 +2,12 @@ plugins {
     id 'java'
 }
 
+java {
+    toolchain {
+        languageVersion = JavaLanguageVersion.of(17)
+    }
+}
+
 configurations {
     antJUnit
 }

From ddd67f031a0efdcfd28817b4ced7f22f06d689db Mon Sep 17 00:00:00 2001
From: Viktor Hofer <viktor.hofer@microsoft.com>
Date: Thu, 9 Jan 2025 11:34:55 +0100
Subject: [PATCH 03/11] Try something else

---
 src/SignalR/clients/java/signalr/build.gradle             | 8 +-------
 src/SignalR/clients/java/signalr/core/build.gradle        | 3 ---
 src/SignalR/clients/java/signalr/messagepack/build.gradle | 3 ---
 src/SignalR/clients/java/signalr/test/build.gradle        | 6 ------
 4 files changed, 1 insertion(+), 19 deletions(-)

diff --git a/src/SignalR/clients/java/signalr/build.gradle b/src/SignalR/clients/java/signalr/build.gradle
index 756040953653..3e192445c97e 100644
--- a/src/SignalR/clients/java/signalr/build.gradle
+++ b/src/SignalR/clients/java/signalr/build.gradle
@@ -14,12 +14,6 @@ plugins {
     id 'maven-publish'
 }
 
-java {
-    toolchain {
-        languageVersion = JavaLanguageVersion.of(17)
-    }
-}
-
 allprojects {
     apply plugin: "java-library"
     apply plugin: "com.diffplug.spotless"
@@ -28,7 +22,7 @@ allprojects {
     version project.findProperty('packageVersion') ?: "99.99.99-dev"
 
     java {
-        sourceCompatibility = 1.8
+        sourceCompatibility = 1.9
     }
 
     repositories {
diff --git a/src/SignalR/clients/java/signalr/core/build.gradle b/src/SignalR/clients/java/signalr/core/build.gradle
index 89ca05f43732..b719ae0cffe9 100644
--- a/src/SignalR/clients/java/signalr/core/build.gradle
+++ b/src/SignalR/clients/java/signalr/core/build.gradle
@@ -6,9 +6,6 @@ plugins {
 group 'com.microsoft.signalr'
 
 java {
-    toolchain {
-        languageVersion = JavaLanguageVersion.of(17)
-    }
     withJavadocJar()
     withSourcesJar()
 }
diff --git a/src/SignalR/clients/java/signalr/messagepack/build.gradle b/src/SignalR/clients/java/signalr/messagepack/build.gradle
index 6a040140133f..159ddba3bc82 100644
--- a/src/SignalR/clients/java/signalr/messagepack/build.gradle
+++ b/src/SignalR/clients/java/signalr/messagepack/build.gradle
@@ -7,9 +7,6 @@ group 'com.microsoft.signalr.messagepack'
 
 java
 {
-    toolchain {
-        languageVersion = JavaLanguageVersion.of(17)
-    }
     withJavadocJar()
     withSourcesJar()
 }
diff --git a/src/SignalR/clients/java/signalr/test/build.gradle b/src/SignalR/clients/java/signalr/test/build.gradle
index 51229fd04038..27b81b32c947 100644
--- a/src/SignalR/clients/java/signalr/test/build.gradle
+++ b/src/SignalR/clients/java/signalr/test/build.gradle
@@ -2,12 +2,6 @@ plugins {
     id 'java'
 }
 
-java {
-    toolchain {
-        languageVersion = JavaLanguageVersion.of(17)
-    }
-}
-
 configurations {
     antJUnit
 }

From 6fb3e6b1e816a5df2190a6ceabae18766fe21eef Mon Sep 17 00:00:00 2001
From: Viktor Hofer <viktor.hofer@microsoft.com>
Date: Thu, 9 Jan 2025 22:17:28 +0100
Subject: [PATCH 04/11] Update InstallJdk.ps1

---
 eng/scripts/InstallJdk.ps1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eng/scripts/InstallJdk.ps1 b/eng/scripts/InstallJdk.ps1
index 0dc30f7ce2f7..7886078ffead 100644
--- a/eng/scripts/InstallJdk.ps1
+++ b/eng/scripts/InstallJdk.ps1
@@ -23,7 +23,7 @@ $javacExe = "$installDir\bin\javac.exe"
 $tempDir = "$repoRoot\obj"
 if (-not $JdkVersion) {
     $globalJson = Get-Content "$repoRoot\global.json" | ConvertFrom-Json
-    $JdkVersion = $globalJson.'native-tools'.jdk
+    $JdkVersion = "11.0.24"
 }
 
 if (Test-Path $javacExe) {

From 0ff722491a57c0f327057da0bfe41447295e666d Mon Sep 17 00:00:00 2001
From: William Godbe <wigodbe@microsoft.com>
Date: Thu, 9 Jan 2025 13:19:07 -0800
Subject: [PATCH 05/11] Remove unused variable `$globalJson` in InstallJdk.ps1

---
 eng/scripts/InstallJdk.ps1 | 1 -
 1 file changed, 1 deletion(-)

diff --git a/eng/scripts/InstallJdk.ps1 b/eng/scripts/InstallJdk.ps1
index 7886078ffead..35dc6c8d9e0f 100644
--- a/eng/scripts/InstallJdk.ps1
+++ b/eng/scripts/InstallJdk.ps1
@@ -22,7 +22,6 @@ $installDir = "$repoRoot\.tools\jdk\win-x64\"
 $javacExe = "$installDir\bin\javac.exe"
 $tempDir = "$repoRoot\obj"
 if (-not $JdkVersion) {
-    $globalJson = Get-Content "$repoRoot\global.json" | ConvertFrom-Json
     $JdkVersion = "11.0.24"
 }
 

From 3b86147886b0a503b171ce5d9f012cc036ece2f2 Mon Sep 17 00:00:00 2001
From: William Godbe <wigodbe@microsoft.com>
Date: Thu, 9 Jan 2025 15:23:31 -0800
Subject: [PATCH 06/11] Update Helix.targets

---
 eng/targets/Helix.targets | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets
index 70e01877befa..2421bd1ff27b 100644
--- a/eng/targets/Helix.targets
+++ b/eng/targets/Helix.targets
@@ -1,9 +1,4 @@
 <Project>
-  <ItemGroup Condition="'$(TestDependsOnJava)' == 'true'">
-    <HelixPreCommand Condition="'$(IsWindowsHelixQueue)' == 'true'" Include="call RunPowershell.cmd InstallJdk.ps1 11.0.3 %25HELIX_CORRELATION_PAYLOAD%25\jdk &amp;&amp; set %22JAVA_HOME=%25HELIX_CORRELATION_PAYLOAD%25\jdk%22" />
-    <HelixPreCommand Condition="'$(IsWindowsHelixQueue)' != 'true' AND '$(IsMacHelixQueue)' != 'true'" Include="./installjdk.sh 10.0.2 x64 &amp;&amp; if [ &quot;%24JAVA_HOME&quot; = &quot;&quot; ]%3B then export JAVA_HOME=%24PWD/java%3B fi" />
-  </ItemGroup>
-
   <ItemGroup Condition="'$(TestDependsOnMssql)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true' AND '$(IsArm64HelixQueue)' != 'true'">
     <HelixPreCommand Include="call RunPowershell.cmd mssql\InstallSqlServerLocalDB.ps1 || exit /b 1" />
   </ItemGroup>

From 2e2bd779fcf7c7e2c854ca9570e1ac20d5a7fe4b Mon Sep 17 00:00:00 2001
From: Brennan <brecon@microsoft.com>
Date: Thu, 9 Jan 2025 16:57:36 -0800
Subject: [PATCH 07/11] Update GsonHubProtocolTest.java

---
 .../main/java/com/microsoft/signalr/GsonHubProtocolTest.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java
index 53454be031b6..d696a74850eb 100644
--- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java
+++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/GsonHubProtocolTest.java
@@ -444,7 +444,7 @@ public void invocationBindingFailureWhenParsingLocalDateTimeWithoutAppropriateTy
         assertEquals(HubMessageType.INVOCATION_BINDING_FAILURE, message.getMessageType());
         InvocationBindingFailureMessage failureMessage = (InvocationBindingFailureMessage) messages.get(0);
 
-        assertEquals("java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 41 path $.arguments[0]", failureMessage.getException().getMessage());
+        assertEquals("com.google.gson.JsonSyntaxException", failureMessage.getException().getClass().getName());
     }
 
     @Test

From fca0103b5947075d93eee651f9c3c234d2ad5aa3 Mon Sep 17 00:00:00 2001
From: Brennan <brecon@microsoft.com>
Date: Thu, 9 Jan 2025 20:33:56 -0800
Subject: [PATCH 08/11] Update Helix.targets

---
 eng/targets/Helix.targets | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets
index 2421bd1ff27b..d7fb9d1aad50 100644
--- a/eng/targets/Helix.targets
+++ b/eng/targets/Helix.targets
@@ -1,4 +1,8 @@
 <Project>
+  <ItemGroup Condition="'$(TestDependsOnJava)' == 'true'">
+    <HelixPreCommand Condition="'$(IsWindowsHelixQueue)' == 'true'" Include="call RunPowershell.cmd InstallJdk.ps1 11.0.3 %25HELIX_CORRELATION_PAYLOAD%25\jdk &amp;&amp; set %22JAVA_HOME=%25HELIX_CORRELATION_PAYLOAD%25\jdk%22" />
+  </ItemGroup>
+
   <ItemGroup Condition="'$(TestDependsOnMssql)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true' AND '$(IsArm64HelixQueue)' != 'true'">
     <HelixPreCommand Include="call RunPowershell.cmd mssql\InstallSqlServerLocalDB.ps1 || exit /b 1" />
   </ItemGroup>

From 475047d6da27a02d1e9f8765f7143373b1b439d4 Mon Sep 17 00:00:00 2001
From: William Godbe <wigodbe@microsoft.com>
Date: Mon, 13 Jan 2025 15:39:58 -0800
Subject: [PATCH 09/11] Add HelixPreCommand for non-Windows, non-Mac queues

---
 eng/targets/Helix.targets | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eng/targets/Helix.targets b/eng/targets/Helix.targets
index d7fb9d1aad50..70e01877befa 100644
--- a/eng/targets/Helix.targets
+++ b/eng/targets/Helix.targets
@@ -1,6 +1,7 @@
 <Project>
   <ItemGroup Condition="'$(TestDependsOnJava)' == 'true'">
     <HelixPreCommand Condition="'$(IsWindowsHelixQueue)' == 'true'" Include="call RunPowershell.cmd InstallJdk.ps1 11.0.3 %25HELIX_CORRELATION_PAYLOAD%25\jdk &amp;&amp; set %22JAVA_HOME=%25HELIX_CORRELATION_PAYLOAD%25\jdk%22" />
+    <HelixPreCommand Condition="'$(IsWindowsHelixQueue)' != 'true' AND '$(IsMacHelixQueue)' != 'true'" Include="./installjdk.sh 10.0.2 x64 &amp;&amp; if [ &quot;%24JAVA_HOME&quot; = &quot;&quot; ]%3B then export JAVA_HOME=%24PWD/java%3B fi" />
   </ItemGroup>
 
   <ItemGroup Condition="'$(TestDependsOnMssql)' == 'true' AND '$(IsWindowsHelixQueue)' == 'true' AND '$(IsArm64HelixQueue)' != 'true'">

From cbf97aee6f936f95f8f55ff18963e9e338e8b0f0 Mon Sep 17 00:00:00 2001
From: Brennan <brecon@microsoft.com>
Date: Thu, 30 Jan 2025 21:03:35 -0800
Subject: [PATCH 10/11] Update signalr.client.java.Tests.javaproj

---
 .../java/signalr/test/signalr.client.java.Tests.javaproj        | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
index 823c53ae8a72..2560e5d0f118 100644
--- a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
+++ b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
@@ -6,6 +6,8 @@
     <!-- Installing Java on ARM will take some work -->
     <SkipHelixArm>true</SkipHelixArm>
     <SkipHelixAlpine>true</SkipHelixAlpine>
+    <!-- Temporary while Mac machines get new JDK -->
+    <SkipHelixQueues>OSX;$(SkipHelixQueues)</SkipHelixQueues>
     <PublishDir>$(OutputPath)</PublishDir>
     <TestDependsOnJava>true</TestDependsOnJava>
   </PropertyGroup>

From a4722704984c9b387f852641f42740a3923709bb Mon Sep 17 00:00:00 2001
From: Brennan <brecon@microsoft.com>
Date: Thu, 30 Jan 2025 23:10:14 -0800
Subject: [PATCH 11/11] Update SkipHelixQueues for OSX.13.Amd64.Open

---
 .../java/signalr/test/signalr.client.java.Tests.javaproj        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
index 2560e5d0f118..e4e95d1cb3f3 100644
--- a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
+++ b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj
@@ -7,7 +7,7 @@
     <SkipHelixArm>true</SkipHelixArm>
     <SkipHelixAlpine>true</SkipHelixAlpine>
     <!-- Temporary while Mac machines get new JDK -->
-    <SkipHelixQueues>OSX;$(SkipHelixQueues)</SkipHelixQueues>
+    <SkipHelixQueues>OSX.13.Amd64.Open;$(SkipHelixQueues)</SkipHelixQueues>
     <PublishDir>$(OutputPath)</PublishDir>
     <TestDependsOnJava>true</TestDependsOnJava>
   </PropertyGroup>