Skip to content

Commit 0b52bd6

Browse files
authored
Fix TempLocationManager on windows (#8304)
1 parent 81a92e7 commit 0b52bd6

File tree

1 file changed

+11
-3
lines changed
  • dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller

1 file changed

+11
-3
lines changed

dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import datadog.trace.util.AgentTaskScheduler;
99
import datadog.trace.util.PidHelper;
1010
import java.io.IOException;
11+
import java.nio.file.FileSystems;
1112
import java.nio.file.FileVisitResult;
1213
import java.nio.file.FileVisitor;
1314
import java.nio.file.Files;
@@ -344,9 +345,16 @@ public Path getTempDir(Path subPath, boolean create) {
344345
subPath != null && !subPath.toString().isEmpty() ? tempDir.resolve(subPath) : tempDir;
345346
if (create && !Files.exists(rslt)) {
346347
try {
347-
Files.createDirectories(
348-
rslt,
349-
PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------")));
348+
Set<String> supportedViews = FileSystems.getDefault().supportedFileAttributeViews();
349+
if (supportedViews.contains("posix")) {
350+
Files.createDirectories(
351+
rslt,
352+
PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------")));
353+
} else {
354+
// non-posix, eg. Windows - let's rely on the created folders being world-writable
355+
Files.createDirectories(rslt);
356+
}
357+
350358
} catch (Exception e) {
351359
log.warn(SEND_TELEMETRY, "Failed to create temp directory: {}", tempDir, e);
352360
throw new IllegalStateException("Failed to create temp directory: " + tempDir, e);

0 commit comments

Comments
 (0)