The last two bugs I posted in this forum is actually the same bug:

I have a scenegraph. Somewhere in it I have a transformgroup which is
live. Is has a child which is a branchgroup and is NOT live (did a
isLive() and a getParent().isLive() to check).

It does not come live even after several minutes.

I was under the impression that anything added to a live node will
become live itself.

If I try to detach() the non-live branchgroup in the bug above I will
get the bug below:

java.lang.NullPointerException
        at javax.media.j3d.NodeRetained.clearLive(NodeRetained.java:681)
        at javax.media.j3d.GroupRetained.clearLive(GroupRetained.java:2539)
        at
javax.media.j3d.BranchGroupRetained.clearLive(BranchGroupRetained.jav
a:169)
        at
javax.media.j3d.GroupRetained.checkClearLive(GroupRetained.java:1656)

        at
javax.media.j3d.GroupRetained.checkClearLive(GroupRetained.java:1594)

        at
javax.media.j3d.GroupRetained.doRemoveChild(GroupRetained.java:387)
        at
javax.media.j3d.BranchGroupRetained.do_detach(BranchGroupRetained.jav
a:89)
        at
javax.media.j3d.BranchGroupRetained.detach(BranchGroupRetained.java:7
4)
        at javax.media.j3d.BranchGroup.detach(BranchGroup.java:105)
        at dk.ifad.simapp.VRObject.parentRemoved(VRObject.java:386)
        at
dk.ifad.simapp.VRAssembler$VREntry.propertyChange(VRAssembler.java:13
7)
        at
dk.ifad.simapp.VRAssembler$VREntry.propertyChange(VRAssembler.java:12
9)
        at
EDU.oswego.cs.dl.util.concurrent.PropertyChangeMulticaster.multicast(
PropertyChangeMulticaster.java:316)
        at
EDU.oswego.cs.dl.util.concurrent.PropertyChangeMulticaster.multicast(
PropertyChangeMulticaster.java:319)
        at
EDU.oswego.cs.dl.util.concurrent.PropertyChangeMulticaster.fireProper
tyChange(PropertyChangeMulticaster.java:337)
        at dk.ifad.sim.SimComponent.removeParent(SimComponent.java:913)
        at dk.ifad.sim.SimComponent.remove(SimComponent.java:893)
        at
dk.ifad.sim.hla.encodings.SimComponentEncodings.reflectSimComponents(
SimComponentEncodings.java:379)
        at
dk.ifad.sim.hla.hgc.HLASimComponentAttributes$SimComponents.reflect(H
LASimComponentAttributes.java:57)
        at
dk.ifad.simnet.hla.HLAAbstractClass$HLAAbstractObject$AttributeReflec
tion.reflect(HLAAbstractClass.java:1588)
        at
dk.ifad.simnet.hla.HLAAbstractClass$HLAAbstractObject$AttributeReflec
tion.execute(HLAAbstractClass.java:1653)
        at dk.ifad.sis.Command.run(Command.java:121)
        at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExec
utor.java:728)
        at java.lang.Thread.run(Unknown Source)


Our application is highly multithreaded, and we manipulate the
scenegraph from several threads at once. If there is a guideline on how
to use Java3D 1.3 in a threadsafe manner, PLEASE tell us Java3D team!!
Since the javadoc mentions nothing of the sort, which normally is an
indicator that everything is threadsafe. Do we need to synchronize on a
global scenegraph lock?? (I hope not)

I really need some feedback from the Java3D team on the multithreading
isssue.

Regards
Nikolai

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