Index: modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/AppletInfo.java =================================================================== --- modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/AppletInfo.java (revision 617423) +++ modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/AppletInfo.java (working copy) @@ -29,7 +29,7 @@ private URL documentBase; private URL codeBase; - private URL archive; + private String archive; private String code; private String tagName; private int width; @@ -61,18 +61,14 @@ this.codeBase = new URL(this.documentBase, (codeBaseStr == null)?"./":codeBaseStr); } - public URL getArchive() { + public String getArchive() { return archive; } - public void setArchive(URL archive) { + public void setArchive(String archive) { this.archive = archive; } - public void setArchive(String archive) throws MalformedURLException { - this.archive = (archive == null)?null:new URL(this.documentBase, archive); - } - public String getParameter(String name) { return params.get(name.toUpperCase()); } @@ -123,12 +119,18 @@ } public URL []getClassLoaderURLs() { - URL []res = (archive == null)?new URL[1]:new URL[2]; - switch (res.length) { - case 2: res[1] = archive; - case 1: res[0] = codeBase; - } - return res; + URL []res = (archive == null)?new URL[1]:new URL[2]; + switch (res.length) { + case 2: + try{ + res[1] = new URL(getCodeBase(), archive); + } catch (MalformedURLException e) { + res[1] = null; + } + case 1: + res[0] = codeBase; + } + return res; } public void setTag(String tagName){ Index: modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/HTMLParser.java =================================================================== --- modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/HTMLParser.java (revision 617423) +++ modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/HTMLParser.java (working copy) @@ -97,11 +97,7 @@ appletInfo.setWidth((String)attributes.getAttribute(HTML.Attribute.WIDTH)); appletInfo.setHeight((String)attributes.getAttribute(HTML.Attribute.HEIGHT)); - try { - appletInfo.setArchive((String)attributes.getAttribute(HTML.Attribute.ARCHIVE)); - } catch (MalformedURLException e) { - appletInfo.setArchive((URL)null); - } + appletInfo.setArchive((String)attributes.getAttribute(HTML.Attribute.ARCHIVE)); try { appletInfo.setCode((String)attributes.getAttribute(HTML.Attribute.CODE)); @@ -132,6 +128,12 @@ String name = (String)attributes.getAttribute(HTML.Attribute.NAME); if(name.equalsIgnoreCase("code")){ appletInfo.setCode((String)attributes.getAttribute(HTML.Attribute.VALUE)); + } else if(name.equalsIgnoreCase("codebase")){ + try { + appletInfo.setCodeBase((String)attributes.getAttribute(HTML.Attribute.VALUE)); + } catch (Exception e) { + appletInfo.setCodeBase((URL)null); + } } else { appletInfo.setParameter(name, (String)attributes.getAttribute(HTML.Attribute.VALUE)); } Index: modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/ViewerAudioClip.java =================================================================== --- modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/ViewerAudioClip.java (revision 617423) +++ modules/tools/src/main/java/org/apache/harmony/tools/appletviewer/ViewerAudioClip.java (working copy) @@ -37,9 +37,7 @@ try { ais = AudioSystem.getAudioInputStream(url); } catch (Exception e) { - System.out.println(url.toString()); e.printStackTrace(); - ais = null; return; } af = ais.getFormat();