[vtkusers] VTK+JAVA Crash in mouse events
Shyam Prakash
ramakrishna.prakash at quest-global.com
Wed Nov 19 06:55:27 EST 2003
Jeff,
I guess I need to get my self out of java-centric thinking. This
is how I understand from you. "It is best to make all the actors/mappers
method level variables or make sure I don't re-instantiate the class
level actor variable until I remove it from the renderer". Can I please
have your comments.
Thanks
Shyam
-----Original Message-----
From: Jeff Lee [mailto:jeff at cdnorthamerica.com]
Sent: Wednesday, November 19, 2003 5:16 PM
To: Shyam Prakash
Cc: vtkusers at public.kitware.com
Subject: Re: [vtkusers] VTK+JAVA Crash in mouse events
Shyam Prakash wrote:
>Jeff,
> The program that I sent you was just to demonstrate my problem.
>Your idea of actors getting gc'ed while they are still in renderer
could
>be a possibility. But then I can not convince my self how this could
>happen as the actor still has a reference to the renderer. Do you have
>any idea?
>
>
The way you coded it, as I recall, was to assign an ivar called actor =
new vtkActor() and then added it to the renderer. The next time you do
this, the previous actor has no more references (even though the
Renderer in c++ added a consumer, this is not the same as adding a
reference). Since you added the old one, but did not remove it, the
object was finalized while still in the renderer, causing the errors.
In short, the actor doesn't have a reference to the renderer, only a
list of consumers.
-Jeff
>Thanks
>Shyam
>
>-----Original Message-----
>From: vtkusers-admin at vtk.org [mailto:vtkusers-admin at vtk.org] On Behalf
>Of Jeff Lee
>Sent: Tuesday, November 18, 2003 8:06 PM
>To: Shyam Prakash
>Cc: vtkusers at public.kitware.com
>Subject: Re: [vtkusers] VTK+JAVA Crash in mouse events
>
>I think the main problem was that your actors were getting gc'ed while
>the mouse was moving. You should be careful to remove actors from the
>renderer which might be garbage collected for any reason. Furthermore,
>you were creating a new plane widget every time the action was
triggered
>
>- was that your intent? If so, you need to remove the old one from the
>renderer first. In the future, if you see this type of behavior, it is
>almost guaranteed to be related to some object unwittingly being a
>candidate for garbage collection, and the object gets deleted while
>still in the renderer. I attached a better-behaving version of your
>code, but it may not be what you intended.
>-Jeff
>
>Shyam Prakash wrote:
>
>
>
>>Hello,
>>
>> I had encountered this problem earlier too. The program
>>suddenly crashes in mouseMove, mouseDrag,mousePress or mouseRelease
>>events with a message similar to the message given below.
>>
>>
>>
>>Current Java thread:
>>
>> at vtk.vtkGenericRenderWindowInteractor.MouseMoveEvent_2(Native
>>Method)
>>
>> at
>>
>>
>>
>vtk.vtkGenericRenderWindowInteractor.MouseMoveEvent(vtkGenericRenderWin
d
>owInteractor.java:19)
>
>
>> at vtk.vtkCanvas.mouseDragged(vtkCanvas.java:209)
>>
>> at
>>
>>
>java.awt.Component.processMouseMotionEvent(Component.java:5182)
>
>
>> at java.awt.Component.processEvent(Component.java:4935)
>>
>>
>>
>>I am not sure what exactly could be the problem. I am using vtk 4.2.2
>>on Windows2k with jdk 1.4.1_02. Attached is a sample code. When I run
>>this code, it often crashes in my machine when I rotate the model
>>vigorously(in combination with resizing the window). My gut feeling is
>>
>>
>
>
>
>>it could be because of the presence of vtkImplicitPlaneWidget. Is
>>there anyway I can avoid this?
>>
>>
>>
>>Thanks
>>
>>Shyam
>>
>>
>>
>
>_______________________________________________
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at:
<http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
>
More information about the vtkusers
mailing list