> 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 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