I got the same result with both files (Index.svg & AHU_Index.svg)
uncompressed or compressed.
openStreamInternal() hangs at contentType = urlC.getContentType() until
I close the applet window when it continues normally (I get the rest of
the print statements in the Java console).
I see getContentType() in Thread-79 below - it's waiting on <0x48b65078>
which was locked by the same thread?
I'll see if I can find a deadlock with JProbe.
Thanks
Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode):
"StatusBar.Refresh" daemon prio=1 tid=0x087d8d88 nid=0x77d1 waiting for
monitor entry [4db05000..4db05854]
at sun.plugin.net.cookie.PluginCookieManager.getCookieInfo(Unknown
Source)
- waiting to lock <0x48c31738> (a java.lang.Class)
at sun.plugin.net.protocol.http.HttpURLConnection.connectSetup(Unknown
Source)
at sun.plugin.net.protocol.http.HttpURLConnection.connect(Unknown
Source)
- locked <0x4475b7d0> (a
sun.plugin.net.protocol.http.HttpURLConnection)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown
Source)
- locked <0x4475b7d0> (a
sun.plugin.net.protocol.http.HttpURLConnection)
at ems_funcs.HttpMessage.sendPostMessage(HttpMessage.java:79)
at ems_data.UserSession.sendPostMessage(UserSession.java:164)
at ems_data.UserSession.keepAlive(UserSession.java:143)
at ems_funcs.StatusBar$Refresh.run(StatusBar.java:409)
"Thread-79" prio=1 tid=0x08a058b8 nid=0x77d1 in Object.wait()
[4da03000..4da03854]
at java.lang.Object.wait(Native Method)
- waiting on <0x48b65078> (a java.lang.Class)
at java.lang.Object.wait(Unknown Source)
at sun.plugin.navig.motif.Worker.enterRequest(Unknown Source)
- locked <0x48b65078> (a java.lang.Class)
at sun.plugin.navig.motif.Worker.findCookieForURL(Unknown Source)
- locked <0x48b65078> (a java.lang.Class)
at sun.plugin.net.cookie.MNetscape6CookieHandler.getCookieInfo(Unknown
Source)
at sun.plugin.net.cookie.PluginCookieManager.getCookieInfo(Unknown
Source)
- locked <0x48c31738> (a java.lang.Class)
at sun.plugin.net.protocol.http.HttpURLConnection.connectSetup(Unknown
Source)
at sun.plugin.net.protocol.http.HttpURLConnection.connect(Unknown
Source)
- locked <0x4472def0> (a
sun.plugin.net.protocol.http.HttpURLConnection)
at
sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)
- locked <0x4472def0> (a
sun.plugin.net.protocol.http.HttpURLConnection)
at
sun.plugin.net.protocol.http.HttpURLConnection.getHeaderField(Unknown
Source)
at java.net.URLConnection.getContentType(Unknown Source)
at org.apache.batik.util.ParsedURLData.openStreamInternal(Unknown
Source)
at org.apache.batik.util.ParsedURLData.openStream(Unknown Source)
at org.apache.batik.util.ParsedURL.openStream(Unknown Source)
at
org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument(Unknown
Source)
at
org.apache.batik.dom.svg.SAXSVGDocumentFactory.createSVGDocument(Unknown
Source)
at org.apache.batik.bridge.DocumentLoader.loadDocument(Unknown Source)
at org.apache.batik.swing.svg.SVGDocumentLoader.run(Unknown Source)
"Thread-71" daemon prio=1 tid=0x08c70210 nid=0x77d1 in Object.wait()
[4e9bd000..4e9bd854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x44f29810> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at org.apache.batik.util.CleanerThread.run(Unknown Source)
"AnimationThread" daemon prio=1 tid=0x08a98f98 nid=0x77d1 waiting on
condition [4dc07000..4dc07854]
at java.lang.Thread.sleep(Native Method)
at ems.SysDisplay$AnimationThread.run(SysDisplay.java:3081)
"RMI ConnectionExpiration-[192.0.0.118:38387]" daemon prio=1
tid=0x087a3240 nid=0x77d1 waiting on condition [4e93c000..4e93c854]
at java.lang.Thread.sleep(Native Method)
at sun.rmi.transport.tcp.TCPChannel$Reaper.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"GC Daemon" daemon prio=1 tid=0x087a30b8 nid=0x77d1 in Object.wait()
[4e7eb000..4e7eb854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44c43190> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(Unknown Source)
- locked <0x44c43190> (a sun.misc.GC$LatencyLock)
"RMI RenewClean-[192.0.0.118:38387]" daemon prio=1 tid=0x087a2d70
nid=0x77d1 in Object.wait() [4e15c000..4e15c854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x44eca7d0> (a java.lang.ref.ReferenceQueue$Lock)
at
sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(Unknown
Source)
at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-5" prio=1 tid=0x08742d98 nid=0x77d1 in Object.wait()
[4e0db000..4e0db854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.awt.EventQueue.getNextEvent(Unknown Source)
- locked <0x44e87d70> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"TimerQueue" daemon prio=1 tid=0x087a4d68 nid=0x77d1 in Object.wait()
[4e8bb000..4e8bb854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44ea05e0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x44ea05e0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)
"thread applet-ems.MainMenu" prio=1 tid=0x087a3c78 nid=0x77d1 in
Object.wait() [4e6e9000..4e6e9854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44e84110> (a sun.plugin.AppletViewer)
at java.lang.Object.wait(Unknown Source)
at sun.applet.AppletPanel.getNextEvent(Unknown Source)
- locked <0x44e84110> (a sun.plugin.AppletViewer)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-0" prio=1 tid=0x4d71fce8 nid=0x77d1 in Object.wait()
[4d982000..4d982854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.awt.EventQueue.getNextEvent(Unknown Source)
- locked <0x44bd3c18> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"Thread-2" prio=1 tid=0x4d71d4b8 nid=0x77d1 runnable
[4d901000..4d901854]
at sun.plugin.navig.motif.AThread.handleRequest(Native Method)
at sun.plugin.navig.motif.AThread.JNIHandleLoop(Unknown Source)
at sun.plugin.navig.motif.AThread.run(Unknown Source)
"Thread-1" prio=1 tid=0x4d700848 nid=0x77d1 waiting on condition
[4d880000..4d880854]
at java.lang.Thread.sleep(Native Method)
at sun.plugin.navig.motif.Plugin$Watcher.run(Unknown Source)
"Cache Cleanup Thread" prio=1 tid=0x081aedc8 nid=0x77d1 in Object.wait()
[4d6a6000..4d6a6854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44beda08> (a sun.plugin.cache.CleanupThread)
at sun.plugin.cache.CleanupThread.run(Unknown Source)
- locked <0x44beda08> (a sun.plugin.cache.CleanupThread)
"TimerQueue" daemon prio=1 tid=0x081ab1d8 nid=0x77d1 in Object.wait()
[4d625000..4d625854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44bedab0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x44bedab0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)
"Java2D Disposer" daemon prio=1 tid=0x08185ea8 nid=0x77d1 in
Object.wait() [4d523000..4d523854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x44be3308> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-1" prio=1 tid=0x081716f0 nid=0x77d1 waiting on condition
[4d5a4000..4d5a4854]
at sun.plugin.JavaRunTime.dumpAllStacks(Native Method)
at sun.plugin.ConsoleWindow$1.actionPerformed(Unknown Source)
at javax.swing.JComponent$ActionStandin.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.KeyboardManager.fireBinding(Unknown Source)
at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown
Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown
Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown
Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown
Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"Main Console Writer" prio=1 tid=0x08162500 nid=0x77d1 in Object.wait()
[4d4a2000..4d4a2854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44bc9b90> (a java.util.LinkedList)
at java.lang.Object.wait(Unknown Source)
at sun.plugin.MainConsoleWriter.run(Unknown Source)
- locked <0x44bc9b90> (a java.util.LinkedList)
at java.lang.Thread.run(Unknown Source)
"AWT-Motif" daemon prio=1 tid=0x08151820 nid=0x77d1 runnable
[4d421000..4d421854]
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Unknown Source)
"AWT-Shutdown" prio=1 tid=0x081514c8 nid=0x77d1 in Object.wait()
[4d3a0000..4d3a0854]
at java.lang.Object.wait(Native Method)
- waiting on <0x44b7ec60> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <0x44b7ec60> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"Signal Dispatcher" daemon prio=1 tid=0x0808e058 nid=0x77d1 runnable
[0..0]
"Finalizer" daemon prio=1 tid=0x08089220 nid=0x77d1 in Object.wait()
[4c823000..4c823854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x44b77f28> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=1 tid=0x08088630 nid=0x77d1 in
Object.wait() [4c7a2000..4c7a2854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x44b77f90> (a java.lang.ref.Reference$Lock)
"main" prio=1 tid=0x0804eeb8 nid=0x77d1 runnable [bfff5000..bfff57f8]
at java.io.FileInputStream.read(Native Method)
at java.io.DataInputStream.readInt(Unknown Source)
at sun.plugin.navig.motif.Plugin.doit(Unknown Source)
at sun.plugin.navig.motif.Plugin.start(Unknown Source)
"VM Thread" prio=1 tid=0x08087330 nid=0x77d1 runnable
"VM Periodic Task Thread" prio=1 tid=0x08090888 nid=0x77d1 waiting on
condition
"Suspend Checker Thread" prio=1 tid=0x0808d670 nid=0x77d1 runnable
----------------------------------------------------
Done.
On Fri, 2004-10-08 at 12:29, Thomas DeWeese wrote:
Hi Stan,
Well, I'm pretty much out of ideas. It looks to me like
it's a problem with the server. You said you had tried
'svgz' - does that mean that you replaced the index file
with a gzipped version? It seems like that is the most
logical problem source (Batik asks for gzip if you have
it and since the first is gzip it works but the second
locks up the server).
Does the the call hang or does it throw an exception?
Stan Dickerson wrote:
Thanks for the reply. I tried the uncrippled js.jar again and got a
security exception. I'm using JRE 1.4.2_04 and Batik 1.5.1.
I was using "file:///var/www/html/index.html" in the Linux console
browser without hanging - now I'm using "http://192.0.0.118/" (my Linux
machine's IP) and getting the hanging problem locally. It's stopping in
ParsedURLData.openStreamInternal(String, Iterator, Iterator) at
contentType = urlC.getContentType(). If hard coded to "text/plain;
charset=ISO-8859-1", it stops at getContentEncoding() - if hard coded to
null, stops at getInputStream().
Here's a valid load:
**********************************************
loadDocument:http://192.0.0.118/svg/Index.svgz
createDocument:http://192.0.0.118/svg/Index.svgz
createDocument purl:http://192.0.0.118/svg/Index.svgz
openStream 0:image/svg+xml
openStream
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/Index.svgz
openStreamInternal setRequestProperty userAgent:Batik/1.0
openStreamInternal encodingTypes:[EMAIL PROTECTED]
encodingHeader:gzip
openStreamInternal settingRequestProperty:gzip
openStreamInternal @ getContentType
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/Index.svgz
openStreamInternal contentType:text/plain; charset=ISO-8859-1
openStreamInternal contentEncoding:null
openStreamInternal getting InputStream
createDocument is:[EMAIL PROTECTED]
createDocument isrc:[EMAIL PROTECTED]
createDocument contentType:text/plain; charset=iso-8859-1
calling getDocumentDescriptor
DocumentDescriptor:[EMAIL PROTECTED]
DocumentState:[EMAIL PROTECTED]
loadDocument:jar:http://192.0.0.118/java/lib/batik-bridge.jar!/org/apache/batik/bridge/BrokenLink.svg
createDocument:jar:http://192.0.0.118/java/lib/batik-bridge.jar!/org/apache/batik/bridge/BrokenLink.svg
createDocument
purl:jar:http://192.0.0.118/java/lib/batik-bridge.jar!/org/apache/batik/bridge/BrokenLink.svg
openStream 0:image/svg+xml
openStream
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.jar.CachedJarURLConnection:jar:http://192.0.0.118/java/lib/batik-bridge.jar!/org/apache/batik/bridge/BrokenLink.svg
openStreamInternal getting InputStream
createDocument is:[EMAIL PROTECTED]
createDocument isrc:[EMAIL PROTECTED]
createDocument contentType:null
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.jar.CachedJarURLConnection:jar:http://192.0.0.118/java/lib/batik-svg-dom.jar!/org/apache/batik/dom/svg/resources/UserAgentStyleSheet.css
openStreamInternal getting InputStream
bridgeContext:[EMAIL PROTECTED]
calling getDocumentDescriptor
DocumentDescriptor:[EMAIL PROTECTED]
DocumentState:[EMAIL PROTECTED]
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.jar.CachedJarURLConnection:jar:http://192.0.0.118/java/lib/batik-svg-dom.jar!/org/apache/batik/dom/svg/resources/UserAgentStyleSheet.css
openStreamInternal getting InputStream
openStream
openStream
openStream
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/scripts/events.js
openStreamInternal setRequestProperty userAgent:Batik/1.0
openStreamInternal encodingTypes:[EMAIL PROTECTED]
encodingHeader:gzip
openStreamInternal settingRequestProperty:gzip
openStreamInternal @ getContentType
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/scripts/events.js
openStreamInternal contentType:application/x-javascript
openStreamInternal contentEncoding:null
openStreamInternal getting InputStream
**********************************************
Here's the load that hangs:
**********************************************
loadDocument:http://192.0.0.118/svg/AHU_Index.svg
createDocument:http://192.0.0.118/svg/AHU_Index.svg
createDocument purl:http://192.0.0.118/svg/AHU_Index.svg
openStream 0:image/svg+xml
openStream
openStreamInternal:null
openStreamInternal
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/AHU_Index.svg
openStreamInternal setRequestProperty userAgent:Batik/1.0
openStreamInternal encodingTypes:[EMAIL PROTECTED]
encodingHeader:gzip
openStreamInternal settingRequestProperty:gzip
openStreamInternal @ getContentType
urlC:sun.plugin.net.protocol.http.HttpURLConnection:http://192.0.0.118/svg/AHU_Index.svg
**********************************************
Could I doing something to URLConnection between drawings? BTW, I tried
AHU_Index.svg and .svgz.
Thanks,
Stan Dickerson
On Thu, 2004-10-07 at 08:06, Thomas DeWeese wrote:
Hi Stan,
Personally I think the optimizer thing is a red herring (have
you tried it with the uncrippled js.jar?).
I would do a thread dump to see what's do what when it hangs.
I am also curious where in the document 'build' processes it
get's to (I would probably add print statements or stack traces
to see where exactly it is dying).
You also don't say, what JDK? what version of Batik?
Stan Dickerson wrote:
I am using a "js.jar" which has no org/mozilla/javascript/optimizer
directory to prevent an exception which was discussed in a thread a few
months ago. That is working on the Linux console, from Windows over the
LAN and Windows to a remote site. However, from the Linux console to
the remote site, the 1st drawing displays in Batik but it hangs upon
clicking on a link to another drawing.
With trace level 5 in the Java console, I get the following when loading
the 1st drawing:
Connecting http://sitename/svg/Index.svgz with proxy=192.0.0.60:3128
Connecting http://sitename/svg/Index.svgz with cookie
"JSESSIONID=81E61750F1D0E1D993263429A4719045"
...
Connecting
http://sitename/java/org/mozilla/javascript/optimizer/Codegen.class with
proxy=192.0.0.60:3128
Connecting
http://sitename/java/org/mozilla/javascript/optimizer/Codegen.class with
cookie "JSESSIONID=55C3B738802372B0B2459562053539D5"
Connecting
http://sitename/java/org/mozilla/javascript/optimizer/InvokerImpl.class
with proxy=192.0.0.60:3128
Connecting
http://sitename/java/org/mozilla/javascript/optimizer/InvokerImpl.class
with cookie "JSESSIONID=55C3B738802372B0B2459562053539D5"
...
Clicking on a link produces:
...
Connecting http://sitename/svg/secondDrawing.svgz with
proxy=192.0.0.60:3128
Connecting http://sitename/svg/secondDrawing.svgz with cookie
"JSESSIONID=55C3B738802372B0B2459562053539D5"
Connecting
http://sitename/java/org/mozilla/javascript/optimizer/InvokerImpl.class
with proxy=192.0.0.60:3128
Connecting http://sitename/svg/secondDrawing.svgz with
proxy=192.0.0.60:3128
(with no more activity)
Any ideas?
Thanks,
Stan Dickerson