Skip to content

Commit a770911

Browse files
committed
Exclude JFR repository from temp files self-cleanup
1 parent 58d5da8 commit a770911

File tree

1 file changed

+9
-2
lines changed
  • dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller

1 file changed

+9
-2
lines changed

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Set;
2121
import java.util.concurrent.CountDownLatch;
2222
import java.util.concurrent.TimeUnit;
23+
import java.util.regex.Pattern;
2324
import java.util.stream.Stream;
2425
import org.slf4j.Logger;
2526
import org.slf4j.LoggerFactory;
@@ -32,8 +33,9 @@
3233
*/
3334
public final class TempLocationManager {
3435
private static final Logger log = LoggerFactory.getLogger(TempLocationManager.class);
35-
// accessible to tests
36-
static final String TEMPDIR_PREFIX = "pid_";
36+
private static final Pattern JFR_DIR_PATTERN =
37+
Pattern.compile("\\d{4}_\\d{2}_\\d{2}_\\d{2}_\\d{2}_\\d{2}_\\d{6}");
38+
private static final String TEMPDIR_PREFIX = "pid_";
3739

3840
private static final class SingletonHolder {
3941
private static final TempLocationManager INSTANCE = new TempLocationManager();
@@ -102,6 +104,11 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
102104
terminated = true;
103105
return FileVisitResult.TERMINATE;
104106
}
107+
if (cleanSelf && JFR_DIR_PATTERN.matcher(dir.getFileName().toString()).matches()) {
108+
// do not delete JFR repository on 'self-cleanup' - it conflicts with the JFR's own cleanup
109+
return FileVisitResult.SKIP_SUBTREE;
110+
}
111+
105112
cleanupTestHook.preVisitDirectory(dir, attrs);
106113

107114
if (dir.equals(baseTempDir)) {

0 commit comments

Comments
 (0)