Hello,

I saw some discussion of a major memory leak in java3d, and I think I am
running into the same problem.

I am currently just creating a swing JFrame with a panel inside it.  The
panel
parents the canvas3d.  Here is the constructor for the panel.

    J3DPanel ()
    {
        setLayout (new BorderLayout());
        GraphicsConfiguration config =
            SimpleUniverse.getPreferredConfiguration ();
        canvas = new Canvas3D(config);
        add (BorderLayout.CENTER, canvas);
        canvas.setBackground (new Color (240, 240, 240));
        universe = new SimpleUniverse (canvas);
    }


When the JFrame that parents the panel is disposed of by the user, the
following
cleanup code is called.  I tried to pattern this after some of the ideas in
the
interest group discussion.

private void cleanup ()
    {
        System.out.println ("3d cleanup called");
        System.out.flush ();
        if (universe != null) {
            universe.removeAllLocales ();
            universe = null;
            canvas = null;
        }
        System.gc();
        System.gc();
    }

I know the cleanup is called because the println is executed.

When I repeatedly create a scene and dispose of the frame, I lose several
megabytes of memory
for each repetition.  This is a major problem that makes using Java3d for a
real world application
untenable.  I recall from my reading that Sun had this as a bug.  Is there a
fix for the bug yet?
Is there any other workaround for this?  Is there some way to use the
VirtualUniverse class rather than the SimpleUniverse class to get around the
problem?


Thanks,

Glenn

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to