Re: bugs

Hi Doug,

> I have a real-time time series display that periodically updates the
> time axis. I've been running into some out of memory problems, so I
> wrote a little test program (attached) that has revealed some bugs. I'm
> seeing the problems with recent stable and beta versions of the jdk and
> java3d on Linux and Windows and with the latest visad.jar.
> 
> 1) After numerous calls (depending on max heap size, less than 5000 with
> the attached program with jvm defaults) to ScalarMap.setRange(), I get
> an OutOfMemoryError. Smells like a memory leak. RangeControl.setRange()
> also leads to an OutOfMemoryError. Hopefully it is not in java3d so we
> can do something about it. It does not happen with java2d
> (DisplayImplJ2D), though.

Since you have a nice test example and are into this, I'd
appreciate it if you could run under Optimizeit and let me
know what data where is growing.

> 2) While running the test, I saw what looks like a Thread bug. Every
> once in a while I'll see the following exception. It occurs "randomly"
> but not when I throw in a sleep.
> 
> java.lang.ClassCastException: javax.media.j3d.GeometryAtom
>         at
> javax.media.j3d.TransformGroupRetained.setTransform(TransformGroupRetained.java:161)
>         at
> javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:111)        
> at
> visad.java3d.DisplayRendererJ3D.setTransform3D(DisplayRendererJ3D.java:1254)
>         at
> visad.java3d.ProjectionControlJ3D.setMatrix(ProjectionControlJ3D.java:102)
>         at
> visad.java3d.DisplayRendererJ3D.setWaitFlag(DisplayRendererJ3D.java:1376)
>         at visad.DisplayImpl.doAction(DisplayImpl.java:1312)
>         at visad.ActionImpl.run(ActionImpl.java:238)
>         at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)

I think a ClassCastException inside Java3D is their bug.
Please submit this as a bug to the java3d-interest
mailing list.

Thanks,
Bill