Mercurial > hg > release > icedtea-web-1.3
changeset 216:37f99d9fbdeb
Fix concurrent classloading problem in JNLPClassLoader.loadClass.
author | Denis Lila <dlila@redhat.com> |
---|---|
date | Mon, 18 Apr 2011 15:13:23 -0400 |
parents | c083edb1ce29 |
children | 211a5e73d119 |
files | ChangeLog netx/net/sourceforge/jnlp/Launcher.java netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java |
diffstat | 3 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Apr 18 18:44:40 2011 +0100 +++ b/ChangeLog Mon Apr 18 15:13:23 2011 -0400 @@ -1,3 +1,11 @@ +2011-04-18 Denis Lila <dlila@redhat.com> + + * netx/net/sourceforge/jnlp/Launcher.java: + Remove unused import. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + Add annotation to suppress warning. + (loadClass): Make synchronized. + 2010-04-14 Andrew John Hughes <ahughes@redhat.com> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java,
--- a/netx/net/sourceforge/jnlp/Launcher.java Mon Apr 18 18:44:40 2011 +0100 +++ b/netx/net/sourceforge/jnlp/Launcher.java Mon Apr 18 15:13:23 2011 -0400 @@ -31,7 +31,6 @@ import java.util.jar.JarFile; import net.sourceforge.jnlp.cache.CacheUtil; -import net.sourceforge.jnlp.cache.ResourceTracker; import net.sourceforge.jnlp.cache.UpdatePolicy; import net.sourceforge.jnlp.runtime.AppThreadGroup; import net.sourceforge.jnlp.runtime.AppletInstance;
--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Apr 18 18:44:40 2011 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Apr 18 15:13:23 2011 -0400 @@ -650,6 +650,7 @@ protected void activateJars(final List<JARDesc> jars) { PrivilegedAction<Void> activate = new PrivilegedAction<Void>() { + @SuppressWarnings("deprecation") public Void run() { // transfer the Jars waitForJars(jars); @@ -983,7 +984,7 @@ * classloader, or one of the classloaders for the JNLP file's * extensions. */ - public Class<?> loadClass(String name) throws ClassNotFoundException { + public synchronized Class<?> loadClass(String name) throws ClassNotFoundException { Class<?> result = findLoadedClassAll(name); @@ -1003,7 +1004,7 @@ // validPackage(name); // search this and the extension loaders - if (result == null) + if (result == null) { try { result = loadClassExt(name); } catch (ClassNotFoundException cnfe) { @@ -1060,6 +1061,7 @@ } } } + } if (result == null) { throw new ClassNotFoundException(name);