Skip to content

Commit ca9ed47

Browse files
authored
Update to ASM 9.7.1 (#1188)
* Update to ASM 9.7.1 * Fix Gradle 8.12 nightlies
1 parent c6e4025 commit ca9ed47

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[versions]
22
kotlin = "1.9.24"
3-
asm = "9.6"
3+
asm = "9.7.1"
44
commons-io = "2.15.1"
55
gson = "2.10.1"
66
guava = "33.0.0-jre"

gradle/test.libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ mockito = "5.13.0"
66
java-debug = "0.52.0"
77
mixin = "0.15.3+mixin.0.8.7"
88

9-
gradle-nightly = "8.11-20240926001708+0000"
9+
gradle-nightly = "8.12-20241009055624+0000"
1010
fabric-loader = "0.16.5"
1111
fabric-installer = "1.0.1"
1212

src/main/java/net/fabricmc/loom/util/gradle/WorkerDaemonClientsManagerHelper.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import java.util.concurrent.atomic.AtomicBoolean;
3333

3434
import org.gradle.api.Transformer;
35+
import org.gradle.process.internal.JvmOptions;
3536
import org.gradle.workers.internal.DaemonForkOptions;
3637
import org.gradle.workers.internal.WorkerDaemonClientsManager;
3738

@@ -45,7 +46,7 @@ public static boolean stopIdleJVM(WorkerDaemonClientsManager manager, String jvm
4546
Transformer<List<Object>, List<Object>> transformer = workerDaemonClients -> {
4647
for (Object /* WorkerDaemonClient */ client : workerDaemonClients) {
4748
DaemonForkOptions forkOptions = getForkOptions(client);
48-
Map<String, Object> systemProperties = forkOptions.getJavaForkOptions().getSystemProperties();
49+
Map<String, Object> systemProperties = getSystemProperties(forkOptions);
4950

5051
if (systemProperties == null || !jvmMarkerValue.equals(systemProperties.get(MARKER_PROP))) {
5152
// Not the JVM we are looking for
@@ -70,6 +71,30 @@ public static boolean stopIdleJVM(WorkerDaemonClientsManager manager, String jvm
7071
return stopped.get();
7172
}
7273

74+
private static Map<String, Object> getSystemProperties(DaemonForkOptions forkOptions) {
75+
try {
76+
Method getJavaForkOptionsMethod = forkOptions.getClass().getDeclaredMethod("getJavaForkOptions");
77+
getJavaForkOptionsMethod.setAccessible(true);
78+
Object /* JavaForkOptions */ javaForkOptions = getJavaForkOptionsMethod.invoke(forkOptions);
79+
Method getSystemPropertiesMethod = javaForkOptions.getClass().getDeclaredMethod("getSystemProperties");
80+
getSystemPropertiesMethod.setAccessible(true);
81+
//noinspection unchecked
82+
return (Map<String, Object>) getSystemPropertiesMethod.invoke(javaForkOptions);
83+
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
84+
// Gradle 8.11 and below
85+
}
86+
87+
// Gradle 8.12+
88+
try {
89+
Method getJvmOptions = forkOptions.getClass().getDeclaredMethod("getJvmOptions");
90+
getJvmOptions.setAccessible(true);
91+
JvmOptions jvmOptions = (JvmOptions) getJvmOptions.invoke(forkOptions);
92+
return jvmOptions.getMutableSystemProperties();
93+
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
94+
throw new RuntimeException("Failed to daemon system properties", e);
95+
}
96+
}
97+
7398
private static DaemonForkOptions getForkOptions(Object /* WorkerDaemonClient */ client) {
7499
try {
75100
Method getForkOptionsMethod = client.getClass().getDeclaredMethod("getForkOptions");

0 commit comments

Comments
 (0)