Hi guys,
I’ve just started integrating the Jalview applet into our multiple structural alignment pages (which was surprisingly easy and very nice - thanks). However, when testing it on various setups, we’ve noticed a problem where launching the applet consistently freezes the web browser for a particular machine.
We’ve done some detective work, but haven’t come up with anything immediately obvious - wondered if you could suggest anything. What we know:
-
Jalview applet works fine on a range of setups including: CentOS 5.2, Firefox 3.0.8, Java 1.6.0_02
-
Machine that doesn’t work is running: CentOS 5.2, Firefox 3.0.8, Java 1.6.0_10
-
Other applets work fine on that machine (e.g. we’ve got Jmol applet working fine off the same web page, but Jalview freezes)
On one occasion (after we enabled the Java console, although this might be a red herring) we managed to get the “unsigned content” prompt then the applet worked fine, however on all other times, we didn’t even get to the “unsigned content” prompt. My colleague ran this through HotSpot VM client which reported a “java level deadlock” - could this be a thread issue?
More details below - many thanks in advance,
Ian
···
–
Ian Sillitoe
CATH Team – http://cathdb.info
System info:
Centos 5.2 (?)
Java 1.6.0_10
Firefox 3.0.8
network: Loading user-defined proxy configuration …
network: Done.
network: Loading proxy configuration from Netscape Navigator …
network: Reading user preference file from
/home/bsm/clegg/.mozilla/VNC/
1ncpdqjn.slt/prefs.js
network: Done.
network: Loading browser proxy configuration …
network: Done.
network: Proxy Configuration: Browser Proxy Configuration
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
p: reload proxy configuration
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to
basic: New window ID: 1602715
basic: Value of xembed: 1
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@15093f1, refcount=1
basic: setWindow: call before applet exists:1602715
basic: Added progress listener:
sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@f0c85e
basic: Loading applet …
basic: Initializing applet …
basic: Starting applet …
basic: completed perf rollup
network: No certificate info for unsigned JAR file:
http://trunk.cathdb.info/jalview/jalviewApplet.jar
network: Cache entry found [url:
[http://trunk.cathdb.info/jalview/jalviewApplet.jar](http://trunk.cathdb.info/jalview/jalviewApplet.jar), version: null]
network: Connecting http://trunk.cathdb.info/jalview/jalviewApplet.jar
with proxy=DIRECT
network: Connecting socket://trunk.cathdb.info:80 with proxy=DIRECT
network: Connecting http://trunk.cathdb.info/jalview/jalviewApplet.jar
with cookie “__utma=67540611.1677045735.1214924216.1220970870.1220982167.8;
ssid=1058620842740559744”
network: ResponseCode for
http://trunk.cathdb.info/jalview/jalviewApplet.jar : 200
network: Encoding for http://trunk.cathdb.info/jalview/jalviewApplet.jar : null
network: Disconnect connection to
http://trunk.cathdb.info/jalview/jalviewApplet.jar
network: Connecting http://trunk.cathdb.info/jalview/jalviewApplet.jar
with proxy=DIRECT
network: Connecting socket://trunk.cathdb.info:80 with proxy=DIRECT
network: Connecting http://trunk.cathdb.info/jalview/jalviewApplet.jar
with cookie “__utma=67540611.1677045735.1214924216.1220970870.1220982167.8;
ssid=1058620842740559744”
network: Downloading resource:
http://trunk.cathdb.info/jalview/jalviewApplet.jar
Content-Length: 368,045
Content-Encoding: null
network: Wrote URL http://trunk.cathdb.info/jalview/jalviewApplet.jar
to File /home/bsm/clegg/.java/deployment/cache/6.0/58/3495abba-31869a75-temp
network: No certificate info for unsigned JAR file:
http://trunk.cathdb.info/jalview/jalviewApplet.jar
network: CleanupThread used 3245195 us
2009-04-03 14:00:08
Full thread dump Java HotSpot™ Client VM (11.0-b15 mixed mode, sharing):
[snip]
Found one Java-level deadlock:
“Thread-7”:
waiting to lock monitor 0x0807ff64 (object 0xcc90e2b0, a
sun.misc.URLClassPath),
which is held by “thread applet-jalview.bin.JalviewLite”
“thread applet-jalview.bin.JalviewLite”:
waiting to lock monitor 0x083ad2ac (object 0xcc90e2d0, a
sun.plugin.security.PluginClassLoader),
which is held by “Thread-7”
Java stack information for the threads listed above:
“Thread-7”:
at sun.misc.URLClassPath.getLoader(URLClassPath.java:278)
- waiting to lock <0xcc90e2b0> (a sun.misc.URLClassPath)
at sun.misc.URLClassPath.getResource(URLClassPath.java:167)
at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:155)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) - locked <0xcc90e2d0> (a sun.plugin.security.PluginClassLoader)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:127) - locked <0xcc90e2d0> (a sun.plugin.security.PluginClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) - locked <0xcc90e2d0> (a sun.plugin.security.PluginClassLoader)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at jalview.bin.a.run(Unknown Source)
“thread applet-jalview.bin.JalviewLite”:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.sun.deploy.cache.CacheEntry.readManifest(CacheEntry.java:929)
at com.sun.deploy.cache.CacheEntry.readManifest(CacheEntry.java:873)
at com.sun.deploy.cache.Cache.getCacheEntry(Cache.java:1615)
at com.sun.deploy.cache.Cache.getCacheEntry(Cache.java:1553)
at com.sun.deploy.cache.Cache.getCacheEntry(Cache.java:1535)
at com.sun.deploy.net.DownloadEngine.isUpdateAvailable(DownloadEngine.java:817)
at com.sun.deploy.cache.DeployCacheHandler.get(DeployCacheHandler.java:153) - locked <0xcc8ff998> (a com.sun.deploy.cache.DeployCacheHandler)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:683)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:656)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:979) - locked <0xcc92f8d8> (a sun.net.www.protocol.http.HttpURLConnection)
at sun.plugin.PluginURLJarFileCallBack.downloadJAR(PluginURLJarFileCallBack.java:74)
at sun.plugin.PluginURLJarFileCallBack.access$000(PluginURLJarFileCallBack.java:48)
at sun.plugin.PluginURLJarFileCallBack$2.run(PluginURLJarFileCallBack.java:133)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.PluginURLJarFileCallBack.retrieve(PluginURLJarFileCallBack.java:120)
at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:186)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:50)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:68)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:189)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(CachedJarURLConnection.java:144) - locked <0xcc931a38> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:90) - locked <0xcc931a38> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:647)
at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:538)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:597)
at sun.misc.URLClassPath$JarLoader.(URLClassPath.java:559)
at sun.misc.URLClassPath$3.run(URLClassPath.java:331)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:320)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:297) - locked <0xcc90e2b0> (a sun.misc.URLClassPath)
at sun.misc.URLClassPath.findResource(URLClassPath.java:144)
at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
at sun.applet.AppletClassLoader.findResource(AppletClassLoader.java:456)
at java.lang.ClassLoader.getResource(ClassLoader.java:978)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1168)
at sun.applet.AppletClassLoader.getResourceAsStream(AppletClassLoader.java:392) - locked <0xcc910270> (a java.lang.Object)
at java.lang.Class.getResourceAsStream(Class.java:2030)
at jalview.bin.b.c(Unknown Source)
at jalview.bin.b.b(Unknown Source)
at jalview.bin.b.(Unknown Source)
at jalview.bin.JalviewLite.init(Unknown Source)
at sun.applet.AppletPanel.run(AppletPanel.java:424)
at java.lang.Thread.run(Thread.java:619)
Found 1 deadlock.