]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6348 Property sonar.path.temp is ignored by Ruby on Rails application 194/head
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 3 Apr 2015 13:19:04 +0000 (15:19 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 3 Apr 2015 13:27:30 +0000 (15:27 +0200)
server/sonar-server/src/main/java/org/sonar/server/platform/DefaultServerFileSystem.java
server/sonar-server/src/main/java/org/sonar/server/platform/TempFolderProvider.java
server/sonar-server/src/test/java/org/sonar/server/platform/TempFolderProviderTest.java

index eecf1e5386ef19b52271fb3891e3de3abe19edd2..624ad9854b69eb1b546cb565defe724e9c43e076 100644 (file)
@@ -99,7 +99,8 @@ public class DefaultServerFileSystem implements ServerFileSystem, Startable {
 
   @Override
   public File getTempDir() {
-    return new File(homeDir, "temp");
+    // Tomcat is started by app process with correct java.io.tmpdir
+    return FileUtils.getTempDirectory();
   }
 
   public File getDeployDir() {
index 21aabdb972941ce7c0c5c7602c7aea5ea8ff7d09..2d2f598db803b2a7b130146cff31222395e8ef01 100644 (file)
@@ -38,7 +38,7 @@ public class TempFolderProvider extends ProviderAdapter {
       try {
         FileUtils.forceMkdir(tempDir);
       } catch (IOException e) {
-        throw new IllegalStateException("Unable to create root temp directory " + tempDir, e);
+        throw new IllegalStateException("Unable to create temp directory " + tempDir, e);
       }
       tempFolder = new DefaultTempFolder(tempDir);
     }
index 0f66f406e1d21b7047c2f023c721f7dbd3dd597f..6452f4477d85679a072f65cfed0a536924af4fcc 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.platform;
 
+import org.apache.commons.io.FileUtils;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -40,16 +41,32 @@ public class TempFolderProviderTest {
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
 
+  TempFolderProvider sut = new TempFolderProvider();
+
   @Test
-  public void createTempFolder() throws Exception {
+  public void existing_temp_dir() throws Exception {
     ServerFileSystem fs = mock(ServerFileSystem.class);
-    File serverTempFolder = temp.newFolder();
-    when(fs.getTempDir()).thenReturn(serverTempFolder);
-    TempFolderProvider tempFolderProvider = new TempFolderProvider(); 
-    TempFolder tempUtils = tempFolderProvider.provide(fs);
-    tempUtils.newDir();
-    tempUtils.newFile();
-    assertThat(new File(serverTempFolder, "tmp")).exists();
-    assertThat(new File(serverTempFolder, "tmp").list()).hasSize(2);
+    File tmpDir = temp.newFolder();
+    when(fs.getTempDir()).thenReturn(tmpDir);
+
+    TempFolder folder = sut.provide(fs);
+    assertThat(folder).isNotNull();
+    File newDir = folder.newDir();
+    assertThat(newDir).exists().isDirectory();
+    assertThat(newDir.getParentFile().getCanonicalPath()).startsWith(tmpDir.getCanonicalPath());
+  }
+
+  @Test
+  public void create_temp_dir_if_missing() throws Exception {
+    ServerFileSystem fs = mock(ServerFileSystem.class);
+    File tmpDir = temp.newFolder();
+    when(fs.getTempDir()).thenReturn(tmpDir);
+    FileUtils.forceDelete(tmpDir);
+
+    TempFolder folder = sut.provide(fs);
+    assertThat(folder).isNotNull();
+    File newDir = folder.newDir();
+    assertThat(newDir).exists().isDirectory();
+    assertThat(newDir.getParentFile().getCanonicalPath()).startsWith(tmpDir.getCanonicalPath());
   }
 }