Hi,

  Bug 4363148 is submitted for this problem.

Thanks for your bug report.

- Kelvin

----------------
Java 3D Team
Sun Microsystems Inc.

>From: "Kasparian, Raffi J." <[EMAIL PROTECTED]>
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>, "'Discussion list for Java
3D API'" <[EMAIL PROTECTED]>
>Subject: Bug with Switch/SharedGroup ?
>Date: Wed, 16 Aug 2000 13:35:04 -0400
>MIME-Version: 1.0
>
>I think I have uncovered a bug regarding Switch with a child SharedGroup.
>
>Here is a test program. Setting boolean willCrash = true generates the
>following Exception.
>
>java.lang.NullPointerException
>        at
>javax.media.j3d.ContainsNodesList.getContainsNodes(ContainsNodesList.java:28
>)
>        at
>javax.media.j3d.Shape3DRetained.setLive(Shape3DRetained.java:1092)
>        at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
>        at javax.media.j3d.GroupRetained.setLive(GroupRetained.java:1209)
>        at
>javax.media.j3d.SharedGroupRetained.setLive(SharedGroupRetained.java:108)
>        at javax.media.j3d.LinkRetained.setLive(LinkRetained.java:140)
>        at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
>        at javax.media.j3d.SwitchRetained.setLive(SwitchRetained.java:370)
>        at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
>        at
>javax.media.j3d.TransformGroupRetained.setLive(TransformGroupRetained.java:3
>22)
>        at javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
>        at
>javax.media.j3d.BranchGroupRetained.setLive(BranchGroupRetained.java:101)
>        at javax.media.j3d.Locale.doAddBranchGraph(Locale.java:183)
>        at javax.media.j3d.Locale.addBranchGraph(Locale.java:159)
>        at
>com.sun.j3d.utils.universe.SimpleUniverse.addBranchGraph(SimpleUniverse.java
>:235)
>        at TestSwitch.<init>(TestSwitch.java:49)
>        at TestSwitch.main(TestSwitch.java:62)
>
>Raffi
>
>/************************TestSwitch.java****************************/
>import java.applet.Applet;
>import java.awt.*;
>import java.awt.event.*;
>import com.sun.j3d.utils.applet.MainFrame;
>import com.sun.j3d.utils.geometry.*;
>import com.sun.j3d.utils.universe.*;
>import javax.media.j3d.*;
>import javax.vecmath.*;
>
>public class TestSwitch extends Applet{
>
>    boolean willCrash = true;
>    Switch switchG;
>
>    public BranchGroup createScene(){
>        BranchGroup root = new BranchGroup();
>        TransformGroup TG1 = new TransformGroup();
>        TransformGroup TG2 = new TransformGroup();
>        Transform3D T = new Transform3D();
>        switchG = new Switch();
>        switchG.setCapability( Switch.ALLOW_SWITCH_READ );
>        switchG.setCapability( Switch.ALLOW_SWITCH_WRITE );
>        SharedGroup cube = new SharedGroup();
>        cube.addChild( new ColorCube(0.1) );
>
>        T.set( new Vector3d( -0.5, 0, 0 ) );
>        TG1.setTransform( T );
>        TG1.addChild( new Link( cube ) );
>
>        T.set( new Vector3d( 0.5, 0, 0 ) );
>        TG2.setTransform( T );
>        TG2.addChild( switchG );
>        switchG.addChild( new Link( cube ) );
>
>        if( willCrash ){
>            root.addChild( TG1 );
>            root.addChild( TG2 );
>        }else{
>            root.addChild( TG2 );
>            root.addChild( TG1 );
>        }
>        return root;
>    }
>    public TestSwitch() {
>        GraphicsConfiguration config =
>SimpleUniverse.getPreferredConfiguration();
>        Canvas3D canvas = new Canvas3D(config);
>        SimpleUniverse universe = new SimpleUniverse(canvas);
>        universe.getViewingPlatform().setNominalViewingTransform();
>        universe.addBranchGraph( createScene() );
>
>        setLayout(new BorderLayout());
>        add("Center", canvas);
>        Button switcher = new Button( "Switch" );
>        switcher.addActionListener( new ActionListener(){
>            public void actionPerformed( ActionEvent e ){
>                switchShape();
>            }
>        });
>        add( "South", switcher );
>    }
>    public static void main( String[] arg ){
>        new MainFrame(new TestSwitch(), 256, 256);
>    }
>    public void switchShape(){
>        int mask = switchG.getWhichChild() == Switch.CHILD_ALL ?
>Switch.CHILD_NONE : Switch.CHILD_ALL;
>        switchG.setWhichChild( mask );
>    }
>}
>
>
>
>

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