This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to annotated tag japicmp-base-0.0.2 in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
commit 3d58ae7ba59656cd20ccee825c2957126c6917af Author: siom79 <[email protected]> AuthorDate: Sun Oct 6 11:29:30 2013 +0200 it is verified that argument for cli option -o and -n is a jar file --- japicmp/src/main/java/japicmp/JApiCmp.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/japicmp/src/main/java/japicmp/JApiCmp.java b/japicmp/src/main/java/japicmp/JApiCmp.java index 14a59ec..bcb684d 100644 --- a/japicmp/src/main/java/japicmp/JApiCmp.java +++ b/japicmp/src/main/java/japicmp/JApiCmp.java @@ -11,7 +11,9 @@ import japicmp.output.stdout.StdoutOutputGenerator; import japicmp.output.xml.XmlOutputGenerator; import java.io.File; +import java.io.IOException; import java.util.List; +import java.util.jar.JarFile; public class JApiCmp { @@ -34,7 +36,7 @@ public class JApiCmp { Options options = parseCliOptions(args); File oldArchive = new File(options.getOldArchive()); File newArchive = new File(options.getNewArchive()); - verifyFilesExist(oldArchive, newArchive); + verifyFiles(oldArchive, newArchive); JarArchiveComparatorOptions comparatorOptions = new JarArchiveComparatorOptions(); copyOptions(options, comparatorOptions); JarArchiveComparator jarArchiveComparator = new JarArchiveComparator(comparatorOptions); @@ -70,7 +72,7 @@ public class JApiCmp { } } - private void verifyFilesExist(File oldArchive, File newArchive) { + private void verifyFiles(File oldArchive, File newArchive) { if (!oldArchive.exists()) { String msg = String.format("File '%s' does not exist.", oldArchive.getAbsolutePath()); throw new JApiCmpException(JApiCmpException.Reason.IllegalArgument, msg); @@ -83,5 +85,16 @@ public class JApiCmp { String msg = String.format("Files '%s' and '%s' are the same.", oldArchive.getAbsolutePath(), newArchive.getAbsolutePath()); throw new JApiCmpException(JApiCmpException.Reason.IllegalArgument, msg); } + verifyJarArchive(oldArchive); + verifyJarArchive(newArchive); + } + + private void verifyJarArchive(File file) { + try { + new JarFile(file); + } catch (IOException e) { + String msg = String.format("File '%s' could not be opened as a jar file: %s", file.getAbsolutePath(), e.getMessage()); + throw new JApiCmpException(JApiCmpException.Reason.IllegalArgument, msg); + } } }
