From ec7c07f81fbf5337f88ecf91954d12dee549ee62 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Mon, 12 Dec 2011 15:56:10 -0600 Subject: [PATCH] Bug fix in FileIssue. * Property changes that changed the filename of the underlying file were neglecting to update the internal file pointer to the new file. --- libpit/project.properties | 6 +-- .../com/jdbernard/pit/file/FileIssue.groovy | 44 ++++++++++--------- pit-cli/project.properties | 4 +- .../pit/PersonalIssueTrackerCLI.groovy | 2 +- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/libpit/project.properties b/libpit/project.properties index 65fd63d..f8e688d 100755 --- a/libpit/project.properties +++ b/libpit/project.properties @@ -1,11 +1,11 @@ -#Thu, 08 Dec 2011 15:46:01 -0600 +#Sun, 11 Dec 2011 21:03:38 -0600 #Sat Apr 24 17:08:00 CDT 2010 build.dir=build src.dir=src lib.shared.dir=../shared-libs test.dir=test -build.number=2 -version=3.2.2 +build.number=3 +version=3.2.3 name=libpit lib.dir=lib lib.local=true diff --git a/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy b/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy index aa141c8..387a39b 100755 --- a/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy +++ b/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy @@ -61,43 +61,45 @@ public class FileIssue extends Issue { } public void setCategory(Category c) throws IOException { - boolean renamed - renamed = source.renameTo(new File(source.canonicalFile.parentFile, - makeFilename(id, c, status, priority))) - if (!renamed) - throw new IOException("I was unable to set the category. " + File newSource = new File(source.canonicalFile.parentFile, + makeFilename(id, c, status, priority)) + + if (source.renameTo(newSource)) { + source = newSource + super.setCategory(c) } + else { throw new IOException("I was unable to set the category. " + "I need to rename the file for this issue, but something is " + "preventing me from doing so (maybe the path to the file is " + "no longer valid, or maybe the file is currently open in " - + "some other program).") - else super.setCategory(c) } + + "some other program).") }} public void setStatus(Status s) throws IOException { - boolean renamed - renamed = source.renameTo(new File(source.canonicalFile.parentFile, - makeFilename(id, category, s, priority))) + File newSource = new File(source.canonicalFile.parentFile, + makeFilename(id, category, s, priority)) - if (!renamed) - throw new IOException("I was unable to set the status. " + if (source.renameTo(newSource)) { + source = newSource + super.setStatus(s) } + else { throw new IOException("I was unable to set the status. " + "I need to rename the file for this issue, but something is " + "preventing me from doing so (maybe the path to the file is " + "no longer valid, or maybe the file is currently open in " - + "some other program).") - else super.setStatus(s) } + + "some other program).") }} public void setPriority(int p) throws IOException { - boolean renamed - renamed = source.renameTo(new File(source.canonicalFile.parentFile, - makeFilename(id, category, status, p))) - if (!renamed) - throw new IOException("I was unable to set the priority. " + File newSource = new File(source.canonicalFile.parentFile, + makeFilename(id, category, status, p)) + + if (source.renameTo(newSource)) { + source = newSource + super.setPriority(p) } + else { throw new IOException("I was unable to set the priority. " + "I need to rename the file for this issue, but something is " + "preventing me from doing so (maybe the path to the file is " + "no longer valid, or maybe the file is currently open in " - + "some other program).") - else super.setPriority(p) } + + "some other program).") }} public String getFilename() { return makeFilename(id, category, status, priority) } diff --git a/pit-cli/project.properties b/pit-cli/project.properties index 28bbb8e..b7925da 100755 --- a/pit-cli/project.properties +++ b/pit-cli/project.properties @@ -1,9 +1,9 @@ -#Thu, 08 Dec 2011 15:46:09 -0600 +#Sun, 11 Dec 2011 21:04:03 -0600 build.dir=build src.dir=src build.jar=pit-cli-${application.version}.${build.number}.jar build.number=2 -version=3.2.2 +version=3.2.3 name=pit-cli lib.dir=lib lib.local=true diff --git a/pit-cli/src/main/com/jdbernard/pit/PersonalIssueTrackerCLI.groovy b/pit-cli/src/main/com/jdbernard/pit/PersonalIssueTrackerCLI.groovy index fa5320c..17bf206 100644 --- a/pit-cli/src/main/com/jdbernard/pit/PersonalIssueTrackerCLI.groovy +++ b/pit-cli/src/main/com/jdbernard/pit/PersonalIssueTrackerCLI.groovy @@ -83,7 +83,7 @@ cli._(longOpt: 'version', 'Display PIT version information.') // ======== Parse CLI Options ======== // // =================================== // -def VERSION = "3.2.2" +def VERSION = "3.2.3" def opts = cli.parse(args) def issuedb = [:] def workingDir = new File('.')