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);

Reply via email to