views:

369

answers:

3

I have a Swing application that is heavy customised with a lot of custom painting mainly on the panels and button to add gradients and round borders.

The application infrequently crashes with exactly the same error and i get hs_err_pid[0000].log

Snippet:

Java Threads: ( => current thread )
  0x032ff400 JavaThread "Thread-1" daemon [_thread_in_native, id=3452, stack(0x04660000,0x046b0000)]
  0x02b1c400 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=3524, stack(0x04850000,0x048a0000)]
  0x03198800 JavaThread "Poller Thread" [_thread_blocked, id=2444, stack(0x04610000,0x04660000)]
  0x032d3c00 JavaThread "ClientAPI::HttpConnection::InputStreamByteReader" [_thread_blocked, id=3672, stack(0x04ad0000,0x04b20000)]
  0x03288400 JavaThread "ClientAPI::HttpConnection" [_thread_blocked, id=4564, stack(0x04a30000,0x04a80000)]
  0x0329f400 JavaThread "ClientAPI::HttpPostConnection" [_thread_blocked, id=412, stack(0x049e0000,0x04a30000)]
  0x02a90400 JavaThread "MultiThreadedHttpConnectionManager cleanup" daemon [_thread_blocked, id=3500, stack(0x048a0000,0x048f0000)]
  0x003a9400 JavaThread "DestroyJavaVM" [_thread_blocked, id=132, stack(0x008c0000,0x00910000)]
  0x03e56800 JavaThread "Thread-7" [_thread_blocked, id=2912, stack(0x04700000,0x04750000)]
  0x03e1d800 JavaThread "TimerQueue" daemon [_thread_blocked, id=5728, stack(0x03da0000,0x03df0000)]
  0x031abc00 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2788, stack(0x036c0000,0x03710000)]
  0x0314ec00 JavaThread "AWT-Shutdown" [_thread_blocked, id=2468, stack(0x034a0000,0x034f0000)]
=>0x02fbe400 JavaThread "Java2D Disposer" daemon [_thread_in_vm, id=5836, stack(0x03450000,0x034a0000)]
  0x02a74400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3044, stack(0x02d20000,0x02d70000)]
  0x02a6e400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3248, stack(0x02cd0000,0x02d20000)]
  0x02a6cc00 JavaThread "Attach Listener" daemon [_thread_blocked, id=548, stack(0x02c80000,0x02cd0000)]
  0x02a6b800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2792, stack(0x02c30000,0x02c80000)]
  0x02a63000 JavaThread "Finalizer" daemon [_thread_blocked, id=1504, stack(0x02be0000,0x02c30000)]
  0x02a61c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=3124, stack(0x02b90000,0x02be0000)]

Is there a way of interpreting this file to determine what could be wrong in my application?

Edit, added more details

From the answered so far, this article and the snipper below, i think the setting of cursors is causing these issues.

Stack: [0x03450000,0x034a0000],  sp=0x0349f860,  free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xd2db8]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  java.awt.Cursor.finalizeImpl(J)V+0
j  java.awt.Cursor.access$000(J)V+1
j  java.awt.Cursor$CursorDisposer.dispose()V+13
j  sun.java2d.Disposer.run()V+26
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub
+3  A: 

This is a very good guide to interpreting hs_err log files, particularly on Windows. It's quite an involved process, unfortunately, but should ultimately guide you to the problem.

Brian Agnew
+1  A: 

Note that unless you use JNI, nothing your application does, no matter, how wrong, should result in a crash of the JVM. I'd try running it on different JVMs and machines to rule out JVM bugs and hardware problems.

Michael Borgwardt
A: 

If you are using a Sun JRE that diagnostics should give a link to the appropriate bug report page. http://java.sun.com/webapps/bugreport/crash.jsp

It's worth ensuring that you have an up to date JRE (6u15/6u16) and up to date graphics card drivers.

Tom Hawtin - tackline
while thats good, i want to make sure i have established the cause of the crash and maybe have a workaround instead of asking users to get the current JRE
n002213f
If they don't have 6u15, they will have known security vulnerabilities (for untrusted code at the least). You might want to push them along.
Tom Hawtin - tackline
In that context i will push for an upgrade of JRE, at least we were signing the application.
n002213f