# HG changeset patch # User Jaroslav Tulach # Date 1399271810 -7200 # Node ID d1eeb43a75a35959c1b76cdea3df43f78a6665b9 # Parent 0d32bf6b4436f36b2bc3c23253570d752f38a5da More robust against missing classes diff -r 0d32bf6b4436 -r d1eeb43a75a3 launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Sun May 04 12:02:57 2014 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Mon May 05 08:36:50 2014 +0200 @@ -40,6 +40,7 @@ * @author Jaroslav Tulach */ class CompileCP { + private static final Logger LOG = Logger.getLogger(CompileCP.class.getName()); static String compileJAR(final JarFile jar) throws IOException { List arr = new ArrayList<>(); List classes = new ArrayList<>(); @@ -62,6 +63,8 @@ .generate(w); w.flush(); return w.toString(); + } catch (IOException ex) { + throw ex; } catch (Throwable ex) { throw new IOException("Cannot compile: ", ex); } finally { @@ -171,7 +174,8 @@ .resources(new Bck2Brwsr.Resources() { @Override public InputStream get(String resource) throws IOException { - return r.get(resource, 0).openStream(); + final URL url = r.get(resource, 0); + return url == null ? null : url.openStream(); } }).generate(sb); } @@ -186,10 +190,12 @@ u = en.nextElement(); } if (u == null) { - throw new IOException("Can't find " + name); + LOG.log(Level.WARNING, "Cannot find {0}", name); + return null; } - if (u.toExternalForm().contains("rt.jar!")) { - throw new IOException("No emulation for " + u); + if (u.toExternalForm().contains("/rt.jar!")) { + LOG.warning(name + "No bootdelegation for "); + return null; } return u.openStream(); }