1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Wed May 14 16:09:03 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Sun May 18 08:42:56 2014 +0200
1.3 @@ -43,43 +43,50 @@
1.4
1.5 private static boolean doingToZip;
1.6
1.7 -
1.8 - @Exported static byte[] loadBytes(String resource, Object classpath, int skip)
1.9 + static byte[] loadBytes(String resource, Object classpath, int skip)
1.10 throws IOException, ClassNotFoundException {
1.11 for (int i = 0; i < length(classpath); i++) {
1.12 - Object c = at(classpath, i);
1.13 - if (c instanceof String && !doingToZip) {
1.14 - try {
1.15 - doingToZip = true;
1.16 - String url = (String)c;
1.17 - final Bck2Brwsr.Resources z = toZip(url);
1.18 - c = set(classpath, i, z);
1.19 - final byte[] man = readBytes(z, "META-INF/MANIFEST.MF");
1.20 - if (man != null) {
1.21 - String mainClass = processClassPathAttr(man, url, classpath);
1.22 + byte[] arr = loadBytes(resource, classpath, i, skip);
1.23 + if (arr != null) {
1.24 + return arr;
1.25 + }
1.26 + }
1.27 + return null;
1.28 + }
1.29 + @Exported static byte[] loadBytes(String resource, Object classpath, int i, int skip)
1.30 + throws IOException, ClassNotFoundException {
1.31 + Object c = at(classpath, i);
1.32 + if (c instanceof String && !doingToZip) {
1.33 + try {
1.34 + doingToZip = true;
1.35 + String url = (String)c;
1.36 + final Bck2Brwsr.Resources z = toZip(url);
1.37 + c = set(classpath, i, z);
1.38 + final byte[] man = readBytes(z, "META-INF/MANIFEST.MF");
1.39 + if (man != null) {
1.40 + String mainClass = processClassPathAttr(man, url, classpath);
1.41 // if (mainClass != null) {
1.42 // Class.forName(mainClass);
1.43 // }
1.44 - }
1.45 - } catch (IOException ex) {
1.46 - set(classpath, i, ex);
1.47 - log("Cannot load " + c + " - " + ex.getClass().getName() + ":" + ex.getMessage());
1.48 - } finally {
1.49 - doingToZip = false;
1.50 }
1.51 + } catch (IOException ex) {
1.52 + set(classpath, i, ex);
1.53 + log("Cannot load " + c + " - " + ex.getClass().getName() + ":" + ex.getMessage());
1.54 + } finally {
1.55 + doingToZip = false;
1.56 }
1.57 - if (resource != null) {
1.58 - byte[] checkRes;
1.59 - if (c instanceof Bck2Brwsr.Resources) {
1.60 - checkRes = readBytes((Bck2Brwsr.Resources)c, resource);
1.61 - if (checkRes != null && --skip < 0) {
1.62 - return checkRes;
1.63 - }
1.64 - } else {
1.65 - checkRes = callFunction(c, resource, skip);
1.66 - if (checkRes != null) {
1.67 - return checkRes;
1.68 - }
1.69 + }
1.70 + if (resource != null) {
1.71 + byte[] checkRes;
1.72 + if (c instanceof Bck2Brwsr.Resources) {
1.73 + checkRes = readBytes((Bck2Brwsr.Resources)c, resource);
1.74 + if (checkRes != null && --skip < 0) {
1.75 + return checkRes;
1.76 + }
1.77 + } else {
1.78 + checkRes = callFunction(c, resource, skip);
1.79 + if (checkRes != null) {
1.80 + return checkRes;
1.81 }
1.82 }
1.83 }