changeset 902:657882ca2b34

implement CommitPatchBuilder.dispose()
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Thu, 13 Nov 2014 20:02:28 +0100
parents d26bf03be294
children ecce3d4fb90b
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java
diffstat 2 files changed, 11 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupport.java	Thu Nov 13 15:33:52 2014 +0100
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupport.java	Thu Nov 13 20:02:28 2014 +0100
@@ -84,7 +84,6 @@
     private final Set<String> myCreatedFiles = new HashSet<String>();
     private final Set<String> myDeletedFiles = new HashSet<String>();
     private final Set<String> myDeletedDirs = new HashSet<String>();
-    private Exception myError;
 
     public MercurialCommitPatchBuilder(@NotNull VcsRoot root, @NotNull HgVcsRoot hgRoot, @NotNull File patchDir, @NotNull File checkoutDir) {
       myRoot = root;
@@ -93,7 +92,7 @@
       myCheckoutDir = checkoutDir;
     }
 
-    public void createFile(@NotNull String path, @NotNull InputStream content) {
+    public void createFile(@NotNull String path, @NotNull InputStream content) throws VcsException {
       OutputStream out = null;
       try {
         File f = new File(myPatchDir, path);
@@ -103,7 +102,7 @@
         myCreatedFiles.add(path);
       } catch (IOException e) {
         LOG.error("Error while creating file " + path, e);
-        myError = e;
+        throw new VcsException("Error while creating file " + path, e);
       } finally {
         if (out != null) {
           try {
@@ -127,17 +126,13 @@
       myDeletedDirs.add(path);
     }
 
-    public void renameFile(@NotNull String oldPath, @NotNull String newPath, @NotNull InputStream content) {
+    public void renameFile(@NotNull String oldPath, @NotNull String newPath, @NotNull InputStream content) throws VcsException {
       myDeletedFiles.add(oldPath);
       createFile(newPath, content);
     }
 
     @NotNull
     public CommitResult commit(@NotNull String userName, @NotNull String description) throws VcsException {
-      if (myError != null)
-        throw new VcsException(myError);
-
-
       try {
         RepositoryStateData state = myVcs.getCollectChangesPolicy().getCurrentState(myRoot);
         String defaultBranch = state.getDefaultBranchName();
@@ -174,11 +169,13 @@
         return CommitResult.createSuccessResult(repo.getWorkingDirRevision());
       } catch (Exception e) {
         throw new VcsException(e);
-      } finally {
-        FileUtil.delete(myPatchDir);
-        FileUtil.delete(myCheckoutDir);
       }
     }
+
+    public void dispose() {
+      FileUtil.delete(myPatchDir);
+      FileUtil.delete(myCheckoutDir);
+    }
   }
 
 
@@ -204,5 +201,7 @@
     public CommitResult commit(@NotNull String userName, @NotNull String description) throws VcsException {
       throw new VcsException(myMessage, myError);
     }
+    public void dispose() {
+    }
   }
 }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Thu Nov 13 15:33:52 2014 +0100
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCommitSupportTest.java	Thu Nov 13 20:02:28 2014 +0100
@@ -69,6 +69,7 @@
     patchBuilder.createFile("a/b/c", stream("test"));
     patchBuilder.renameFile("y", "z", stream("rename"));
     CommitResult result = patchBuilder.commit(author, description);
+    patchBuilder.dispose();
 
     RepositoryStateData afterCommit = myVcs.getCollectChangesPolicy().getCurrentState(root);
     assertEquals(result.getCreatedRevision(), afterCommit.getBranchRevisions().get(afterCommit.getDefaultBranchName()));