You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2014/04/05 13:45:22 UTC

svn commit: r1585053 - in /lucene/dev/trunk: ./ lucene/ lucene/test-framework/ lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java

Author: dweiss
Date: Sat Apr  5 11:45:22 2014
New Revision: 1585053

URL: http://svn.apache.org/r1585053
Log:
LUCENE-5577: the cleanup code didn't cleanup after itself...

Modified:
    lucene/dev/trunk/   (props changed)
    lucene/dev/trunk/lucene/   (props changed)
    lucene/dev/trunk/lucene/test-framework/   (props changed)
    lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java

Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1585053&r1=1585052&r2=1585053&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Sat Apr  5 11:45:22 2014
@@ -2338,35 +2338,45 @@ public abstract class LuceneTestCase ext
 
   private static class TemporaryFilesCleanupRule extends TestRuleAdapter {
     @Override
-    protected void afterAlways(List<Throwable> errors) throws Throwable {
-      if (LuceneTestCase.suiteFailureMarker.wasSuccessful()) {
-        synchronized (cleanupQueue) {
-          File [] everything = new File [cleanupQueue.size()];
-          for (int i = 0; !cleanupQueue.isEmpty(); i++) {
-            everything[i] = cleanupQueue.removeLast();
-          }
+    protected void before() throws Throwable {
+      super.before();
+      assert tempDirBase == null;
+    }
 
-          // Will throw an IOException on un-removable files.
-          try {
-            TestUtil.rm(everything);
-          } catch (IOException e) {
-            Class<?> suiteClass = RandomizedContext.current().getTargetClass();
-            if (suiteClass.isAnnotationPresent(SuppressTempFileChecks.class)) {
-              System.err.println("WARNING: Leftover undeleted temporary files (bugUrl: "
-                  + suiteClass.getAnnotation(SuppressTempFileChecks.class).bugUrl() + "): "
-                  + e.getMessage());
-              return;
+    @Override
+    protected void afterAlways(List<Throwable> errors) throws Throwable {
+      try {
+        if (LuceneTestCase.suiteFailureMarker.wasSuccessful()) {
+          synchronized (cleanupQueue) {
+            File [] everything = new File [cleanupQueue.size()];
+            for (int i = 0; !cleanupQueue.isEmpty(); i++) {
+              everything[i] = cleanupQueue.removeLast();
+            }
+  
+            // Will throw an IOException on un-removable files.
+            try {
+              TestUtil.rm(everything);
+            } catch (IOException e) {
+              Class<?> suiteClass = RandomizedContext.current().getTargetClass();
+              if (suiteClass.isAnnotationPresent(SuppressTempFileChecks.class)) {
+                System.err.println("WARNING: Leftover undeleted temporary files (bugUrl: "
+                    + suiteClass.getAnnotation(SuppressTempFileChecks.class).bugUrl() + "): "
+                    + e.getMessage());
+                return;
+              }
+              throw e;
             }
-            throw e;
           }
-        }
-      } else {
-        synchronized (cleanupQueue) {
-          if (tempDirBase != null) {
-            System.err.println("NOTE: leaving temporary files on disk at: " +
-                tempDirBase.getAbsolutePath());
+        } else {
+          synchronized (cleanupQueue) {
+            if (tempDirBase != null) {
+              System.err.println("NOTE: leaving temporary files on disk at: " +
+                  tempDirBase.getAbsolutePath());
+            }
           }
         }
+      } finally {
+        tempDirBase = null;
       }
     }
   }