From 39bc7c8582265b81a659855f4117a1c400ee3d95 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 11 Dec 2023 20:35:06 -0800 Subject: [PATCH] Support getPermissions() call on Gradle 8.6-milestone-1 The `getPermissions` method is now part of the private `ParentDirectoryStub` class so we now need to call `setAccessible(true)`. Fixes gh-38718 --- .../boot/gradle/tasks/bundling/BootZipCopyAction.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java index cc1000b590b..6e9606f4dab 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; +import java.lang.reflect.Method; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.Collection; @@ -462,7 +463,9 @@ class BootZipCopyAction implements CopyAction { private int getPermissions(FileCopyDetails details) { if (GradleVersion.current().compareTo(GradleVersion.version("8.3")) >= 0) { try { - Object permissions = details.getClass().getMethod("getPermissions").invoke(details); + Method getPermissionsMethod = details.getClass().getMethod("getPermissions"); + getPermissionsMethod.setAccessible(true); + Object permissions = getPermissionsMethod.invoke(details); return (int) permissions.getClass().getMethod("toUnixNumeric").invoke(permissions); } catch (Exception ex) {