From 82511122520e28082efd563e75cfea7d57430631 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Fri, 13 Jan 2012 14:54:52 +0100 Subject: [PATCH] PerformanceMonitor: do not create empty dirs if not necessary --- .../src/com/intellij/diagnostic/PerformanceWatcher.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/diagnostic/PerformanceWatcher.java b/platform/platform-impl/src/com/intellij/diagnostic/PerformanceWatcher.java index 6922ddedeb4e..717ddecbf122 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/PerformanceWatcher.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/PerformanceWatcher.java @@ -97,7 +97,6 @@ public class PerformanceWatcher implements ApplicationComponent { myLogDir = new File(PathManager.getLogPath() + "/threadDumps-" + myDateFormat.format(new Date()) + "-" + ApplicationInfo.getInstance().getBuild().asString()); - myLogDir.mkdirs(); myCurHangLogDir = myLogDir; try { @@ -165,7 +164,6 @@ public class PerformanceWatcher implements ApplicationComponent { if (myUnresponsiveDuration == UNRESPONSIVE_THRESHOLD) { //System.out.println("EDT is not responding at " + myPrintDateFormat.format(new Date())); myCurHangLogDir = new File(myLogDir, myDateFormat.format(new Date())); - myCurHangLogDir.mkdirs(); } if (myUnresponsiveDuration >= UNRESPONSIVE_THRESHOLD) { dumpThreads(false); @@ -174,7 +172,9 @@ public class PerformanceWatcher implements ApplicationComponent { else { if (myUnresponsiveDuration >= UNRESPONSIVE_THRESHOLD) { //System.out.println("EDT was unresponsive for " + myUnresponsiveDuration + " seconds"); - myCurHangLogDir.renameTo(new File(myLogDir, getLogDirForHang())); + if (myCurHangLogDir.exists()) { + myCurHangLogDir.renameTo(new File(myLogDir, getLogDirForHang())); + } myUnresponsiveDuration = 0; myCurHangLogDir = myLogDir; @@ -199,6 +199,8 @@ public class PerformanceWatcher implements ApplicationComponent { public void dumpThreads(boolean millis) { final String suffix = millis ? "-" + String.valueOf(System.currentTimeMillis()) : ""; + myCurHangLogDir.mkdirs(); + File f = new File(myCurHangLogDir, "threadDump-" + myDateFormat.format(new Date()) + suffix + ".txt"); FileOutputStream fos; try {