diff --git a/dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java b/dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java index 5d800dda3..15b2df2b2 100644 --- a/dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java +++ b/dependency-check-cli/src/main/java/org/owasp/dependencycheck/App.java @@ -62,7 +62,7 @@ public class App { final App app = new App(); app.run(args); } finally { - Settings.cleanup(); + Settings.cleanup(true); } } diff --git a/dependency-check-cli/src/test/java/org/owasp/dependencycheck/cli/CliParserTest.java b/dependency-check-cli/src/test/java/org/owasp/dependencycheck/cli/CliParserTest.java index 13921bae5..1c62ed81e 100644 --- a/dependency-check-cli/src/test/java/org/owasp/dependencycheck/cli/CliParserTest.java +++ b/dependency-check-cli/src/test/java/org/owasp/dependencycheck/cli/CliParserTest.java @@ -44,7 +44,7 @@ public class CliParserTest { @AfterClass public static void tearDownClass() throws Exception { - Settings.cleanup(); + Settings.cleanup(true); } @Before diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java index 34274d778..56cefcdcf 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java @@ -888,7 +888,7 @@ public class DependencyCheckScanAgent { "Unable to connect to the dependency-check database; analysis has stopped"); LOGGER.log(Level.FINE, "", ex); } finally { - Settings.cleanup(); + Settings.cleanup(true); if (engine != null) { engine.cleanup(); } diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/utils/Settings.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/utils/Settings.java index 90787e0b6..a3f1d3b29 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/utils/Settings.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/utils/Settings.java @@ -247,9 +247,11 @@ public final class Settings { /** * Cleans up resources to prevent memory leaks. + * + * @param deleteTemporary flag indicating whether any temporary directories generated should be removed */ - public static void cleanup() { - if (tempDirectory != null && tempDirectory.exists()) { + public static void cleanup(boolean deleteTemporary) { + if (deleteTemporary && tempDirectory != null && tempDirectory.exists()) { FileUtils.delete(tempDirectory); } try { diff --git a/dependency-check-core/src/test/java/org/owasp/dependencycheck/BaseTest.java b/dependency-check-core/src/test/java/org/owasp/dependencycheck/BaseTest.java index 48154239d..b294ee936 100644 --- a/dependency-check-core/src/test/java/org/owasp/dependencycheck/BaseTest.java +++ b/dependency-check-core/src/test/java/org/owasp/dependencycheck/BaseTest.java @@ -32,6 +32,6 @@ public class BaseTest { @AfterClass public static void tearDownClass() throws Exception { - Settings.cleanup(); + Settings.cleanup(true); } } diff --git a/dependency-check-maven/src/main/java/org/owasp/dependencycheck/maven/DependencyCheckMojo.java b/dependency-check-maven/src/main/java/org/owasp/dependencycheck/maven/DependencyCheckMojo.java index ad0bcf5da..88335665e 100644 --- a/dependency-check-maven/src/main/java/org/owasp/dependencycheck/maven/DependencyCheckMojo.java +++ b/dependency-check-maven/src/main/java/org/owasp/dependencycheck/maven/DependencyCheckMojo.java @@ -953,7 +953,7 @@ public class DependencyCheckMojo extends AbstractMojo implements MavenMultiPageR "Unable to connect to the dependency-check database; analysis has stopped"); logger.log(Level.FINE, "", ex); } finally { - Settings.cleanup(); + Settings.cleanup(true); if (engine != null) { engine.cleanup(); } @@ -994,7 +994,7 @@ public class DependencyCheckMojo extends AbstractMojo implements MavenMultiPageR "Unable to connect to the dependency-check database; analysis has stopped"); logger.log(Level.FINE, "", ex); } finally { - Settings.cleanup(); + Settings.cleanup(true); if (engine != null) { engine.cleanup(); }