diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtils.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtils.kt index 7724a8c2255..ea6014f4e38 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtils.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtils.kt @@ -91,7 +91,9 @@ fun extractZipFile(zipFilePath: Path, destDir: Path) { .forEach { zipEntry -> val destPath = Paths.get(destDir.toString(), zipEntry.toString()) destPath.createParentDirectories() - Files.copy(zipEntry, destPath, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES) + Files.copy(zipEntry, destPath, StandardCopyOption.REPLACE_EXISTING) + val permissions = Files.getPosixFilePermissions(zipEntry) + Files.setPosixFilePermissions(destPath, permissions) } } } diff --git a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtilsTest.kt b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtilsTest.kt index 607b94f34bf..0fe0a4036ae 100644 --- a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtilsTest.kt +++ b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/artifacts/LspUtilsTest.kt @@ -17,7 +17,6 @@ import software.aws.toolkits.jetbrains.utils.satisfiesKt import java.nio.file.FileSystems import java.nio.file.Files import java.nio.file.Path -import java.nio.file.StandardCopyOption import java.nio.file.attribute.PosixFilePermissions import java.util.zip.ZipOutputStream import kotlin.io.path.isRegularFile @@ -86,7 +85,10 @@ class LspUtilsTest { paths .filter { it.isRegularFile() } .forEach { file -> - Files.copy(file, zipfs.getPath("/").resolve(source.relativize(file).toString()), StandardCopyOption.COPY_ATTRIBUTES) + val targetPath = zipfs.getPath("/").resolve(source.relativize(file).toString()) + Files.copy(file, targetPath) + val sourcePerms = Files.getPosixFilePermissions(file) + Files.setPosixFilePermissions(targetPath, sourcePerms) } } }