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

Clean up temporary file if tarTo raises an exception

Michael Walker 8 лет назад
Родитель
Сommit
513e83fa00
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Tar.java

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

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