See gh-37878
This commit is contained in:
Andy Wilkinson 2023-10-13 21:17:12 +01:00
parent dbc06faed8
commit 3dba0d76d2
1 changed files with 2 additions and 7 deletions

View File

@ -44,7 +44,6 @@ import org.gradle.api.internal.file.copy.CopyAction;
import org.gradle.api.internal.file.copy.CopyActionProcessingStream; import org.gradle.api.internal.file.copy.CopyActionProcessingStream;
import org.gradle.api.java.archives.Attributes; import org.gradle.api.java.archives.Attributes;
import org.gradle.api.java.archives.Manifest; import org.gradle.api.java.archives.Manifest;
import org.gradle.api.provider.Provider;
import org.gradle.api.specs.Spec; import org.gradle.api.specs.Spec;
import org.gradle.api.tasks.WorkResult; import org.gradle.api.tasks.WorkResult;
import org.gradle.api.tasks.WorkResults; import org.gradle.api.tasks.WorkResults;
@ -417,15 +416,11 @@ class BootZipCopyAction implements CopyAction {
: UnixStat.FILE_FLAG | getPermissions(details); : UnixStat.FILE_FLAG | getPermissions(details);
} }
@SuppressWarnings("unchecked")
private int getPermissions(FileCopyDetails details) { private int getPermissions(FileCopyDetails details) {
if (GradleVersion.current().compareTo(GradleVersion.version("8.3")) >= 0) { if (GradleVersion.current().compareTo(GradleVersion.version("8.3")) >= 0) {
try { try {
Object permissions = ((Provider<Object>) details.getClass() Object permissions = details.getClass().getMethod("getPermissions").invoke(details);
.getMethod("getPermissions") return (int) permissions.getClass().getMethod("toUnixNumeric").invoke(permissions);
.invoke(details)).get();
return ((Provider<Integer>) permissions.getClass().getMethod("toUnixNumeric").invoke(permissions))
.get();
} }
catch (Exception ex) { catch (Exception ex) {
throw new GradleException("Failed to get permissions", ex); throw new GradleException("Failed to get permissions", ex);