Hello, I've experienced this issue with Java 1.6, Java3D 1.5.1 and VisAD 2.0 (~2003 source). It appears that Java 1.6 and Java3D 1.5.1 are more sensitive to Swing/UI calls taking place outside of the event dispatch thread (EDT). The underlying issue appears to be with the instantiation of visad.DisplayEvent. Somewhere in the instantiation of DisplayEvent a Swing call is made which can hang the application if done outside the EDT (I think the instantiation of java.awt.MouseEvent in DisplayEvent was the issue as it makes calls on the underlying component passed into the MouseEvent constructor). I resolved the issue by modifying VisADCanvasJ3D and DisplayImpl so that DisplayEvent is only instantiated on the EDT. Attached are the DisplayImpl and VisADCanvasJ3D with DisplayEvent creation wrapped in java.lang.Runnable instances dispatched on the EDT (if required). I would have posted diffs but we are using an older version of VisAD as we had issues upgrading years back (not a priority to resolve). I am not entirely comfortable with the changes but we've been using them heavily for the past few months (they appear to be robust with the way we are using VisAD, mileage may vary). Tom From: visad-bounces@xxxxxxxxxxxxxxxx [mailto:visad-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Curtis Rueden Sent: Monday, June 02, 2008 5:29 PM To: James Fishbaugh Cc: VisAD mailing list Subject: Re: [visad] visad with java 1.6 Hi James, Without a test case it is difficult to diagnose anything. Does the ScaleTest example program work on your machines? It calls the setAspectCartesian method. I tried it on my Linux VM with Java 1.6.0_05 + Java3D 1.5.1 with both Java2D and Java3D, and was unable to force a hang or crash. If ScaleTest does not hang on your machine, perhaps you could try creating a small program that uses setAspectCartesian that does, and then I can test it on my system. If you are unable to create such a program, then your idea of compiling the latest VisAD code and digging into the problem with your application on your system is probably your best bet. -Curtis On Mon, Jun 2, 2008 at 3:24 PM, James Fishbaugh <jfishbaugh@xxxxxxxxx> wrote: Curtis, Besides the visAD calls I described in my first email, I'm not sure what specifics I can give you. We did trace the call "setAspectCartesian" into the visAD code and it froze on a call to "synchronize" (not too surprising) waiting on a map lock. James NOTICE: This e-mail communication may contain privileged or other confidential information for the sole use of the designated recipients. If you have received it in error, please advise the sender by reply email and immediately delete the message and any attachments without reviewing, copying or disclosing the contents.
Attachment:
DisplayImpl.java
Description: DisplayImpl.java
Attachment:
VisADCanvasJ3D.java
Description: VisADCanvasJ3D.java
visad
archives: