Просмотр исходного кода

Clean up temporary file if tarTo raises an exception

Michael Walker 8 лет назад
Родитель
Сommit
513e83fa00

+ 6 - 0
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Tar.java

@@ -42,6 +42,9 @@ public class Tar {
             /* Closes target */
             try (OutputStream bzip2 = new BZip2CompressorOutputStream(target)) {
                 tarTo(fileOrDir, bzip2);
+            } catch (IOException e) {
+                tmp.delete();
+                throw e;
             }
             if (sizePtr != null) {
                 sizePtr[0] = tmp.length();
@@ -69,6 +72,9 @@ public class Tar {
         try (FileOutputStream target = new FileOutputStream(tmp)) {
             tarTo(fileOrDir, target);
             return new DeletingFileInputStream(tmp);
+        } catch (IOException e) {
+            tmp.delete();
+            throw e;
         }
     }