From 3f3be78148cf9fd49bccdae844e4bdb93a6e23b5 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 7 Aug 2014 12:57:49 +0200 Subject: [PATCH] SONAR-5519 create temp directory if not exists at startup --- .../org/sonar/application/PropsBuilder.java | 3 +-- .../org/sonar/application/PropsBuilderTest.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/sonar-application/src/main/java/org/sonar/application/PropsBuilder.java b/sonar-application/src/main/java/org/sonar/application/PropsBuilder.java index af1d9817eb2..82fe49d181f 100644 --- a/sonar-application/src/main/java/org/sonar/application/PropsBuilder.java +++ b/sonar-application/src/main/java/org/sonar/application/PropsBuilder.java @@ -101,8 +101,7 @@ class PropsBuilder { private void initExistingDir(Props props, String propKey, String defaultRelativePath) throws IOException { File dir = configureDir(props, propKey, defaultRelativePath); if (!dir.exists()) { - throw new IllegalStateException(String.format("Property '%s' is not valid, directory does not exist: %s", - propKey, dir.getAbsolutePath())); + FileUtils.forceMkdir(dir); } if (!dir.isDirectory()) { throw new IllegalStateException(String.format("Property '%s' is not valid, not a directory: %s", diff --git a/sonar-application/src/test/java/org/sonar/application/PropsBuilderTest.java b/sonar-application/src/test/java/org/sonar/application/PropsBuilderTest.java index a7ae36ac0c4..0c89e72dd97 100644 --- a/sonar-application/src/test/java/org/sonar/application/PropsBuilderTest.java +++ b/sonar-application/src/test/java/org/sonar/application/PropsBuilderTest.java @@ -77,18 +77,21 @@ public class PropsBuilderTest { } @Test - public void fail_if_missing_required_directory() throws Exception { + public void create_missing_required_directory() throws Exception { // /data is missing FileUtils.forceMkdir(webDir); FileUtils.forceMkdir(logsDir); File dataDir = new File(homeDir, "data"); - try { - new PropsBuilder(new Properties(), jdbcSettings, homeDir).build(); - fail(); - } catch (IllegalStateException e) { - assertThat(e.getMessage()).startsWith("Property 'sonar.path.data' is not valid, directory does not exist: " + dataDir.getAbsolutePath()); - } + new PropsBuilder(new Properties(), jdbcSettings, homeDir).build(); + assertThat(dataDir).isDirectory().exists(); + } + + @Test + public void fail_if_required_directory_is_a_file() throws Exception { + // /data is missing + FileUtils.forceMkdir(webDir); + FileUtils.forceMkdir(logsDir); try { FileUtils.touch(dataDir); -- 2.39.5