getResourceAsString throws IOException if not found Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/3bc2cb36 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/3bc2cb36 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/3bc2cb36
Branch: refs/heads/ucfpackage-robundle Commit: 3bc2cb36ccda7e1024bab1a5b79ab2e7849a9a40 Parents: 5b185ac Author: Stian Soiland-Reyes <[email protected]> Authored: Tue Jun 10 16:05:23 2014 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Thu Jul 2 15:12:02 2015 +0100 ---------------------------------------------------------------------- .../apache/taverna/scufl2/ucfpackage/UCFPackage.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3bc2cb36/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java ---------------------------------------------------------------------- diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java index e452dc9..9dfc529 100644 --- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java +++ b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java @@ -25,6 +25,7 @@ import static java.io.File.createTempFile; import static java.util.logging.Level.INFO; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -337,6 +338,12 @@ public class UCFPackage implements Cloneable { public String getResourceAsString(String path) throws IOException { Path bundlePath = bundle.getRoot().resolve(path); + if (! Files.exists(bundlePath)) { + throw new FileNotFoundException("Can't find: " + bundlePath); + } + if (! Files.isRegularFile(bundlePath)) { + throw new IOException("Not a regular file: " + bundlePath); + } return Bundles.getStringValue(bundlePath); } @@ -348,7 +355,7 @@ public class UCFPackage implements Cloneable { public InputStream getResourceAsInputStream(String path) throws IOException { Path bundlePath = bundle.getRoot().resolve(path); if (! Files.isReadable(bundlePath)) { - return null; + throw new IOException("Can't read " + bundlePath); } return Files.newInputStream(bundlePath); } @@ -375,7 +382,8 @@ public class UCFPackage implements Cloneable { if (reserved.contains(path)) { continue; } - content.put(path.toString(), new ResourceEntry(path)); + String pathStr = bundle.getRoot().relativize(path).toString(); + content.put(pathStr, new ResourceEntry(path)); } } catch (IOException e) { throw new RuntimeException("Can't list resources of " +folderPath, e);
