VTK native code crash in vtkActor.getMapper()
SelectionHighlighter
may get its hands on stale vtkActor
references, causing a crash in native VTK code:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j vtk.vtkActor.GetMapper_17()J+0
j vtk.vtkActor.GetMapper()Lvtk/vtkMapper;+1
j org.simantics.g3d.vtk.common.SelectionHighlighter.setColor(Lvtk/vtkActor;Z[D)V+1
j org.simantics.g3d.vtk.common.SelectionHighlighter.setColor(Lorg/simantics/g3d/scenegraph/base/INode;Z[D)V+52
j fi.apros.pipeline.editor.PipelineEditor$10.hilight(Lorg/simantics/g3d/scenegraph/base/INode;Lorg/simantics/g3d/scenegraph/NodeHighlighter$HighlightEventType;)V+138
j org.simantics.g3d.vtk.common.SelectionHighlighter.highlight(Lorg/eclipse/jface/viewers/ISelection;Lorg/simantics/g3d/scenegraph/NodeHighlighter$HighlightEventType;Lorg/simantics/g3d/scenegraph/NodeHighlighter$HighlightEventType;)V+89
j org.simantics.g3d.vtk.common.SelectionHighlighter.highlight(Lorg/eclipse/jface/viewers/ISelection;)V+8
j org.simantics.g3d.vtk.common.SelectionHighlighter.selectionChanged(Lorg/eclipse/jface/viewers/SelectionChangedEvent;)V+30
j fi.apros.pipeline.editor.PipelineEditor$10.selectionChanged(Lorg/eclipse/jface/viewers/SelectionChangedEvent;)V+782
j org.simantics.g3d.vtk.common.NodeSelectionProvider2.fireSelectionChanged(Ljava/lang/Object;)V+43
j org.simantics.g3d.vtk.common.NodeSelectionProvider2.setSelection(Lorg/eclipse/jface/viewers/ISelection;)V+151
j fi.apros.pipeline.editor.PipelineEditor.setEditorMode(Lfi/apros/pipeline/editor/EditorMode;)V+25
j fi.apros.pipeline.editor.PipelineEditor.lambda$4(Lorg/eclipse/swt/events/SelectionEvent;)V+10
j fi.apros.pipeline.editor.PipelineEditor$$Lambda$532.accept(Ljava/lang/Object;)V+8
j org.eclipse.swt.events.SelectionListener$1.widgetSelected(Lorg/eclipse/swt/events/SelectionEvent;)V+5
J 28766 c2 org.eclipse.swt.widgets.TypedListener.handleEvent(Lorg/eclipse/swt/widgets/Event;)V (1291 bytes) @ 0x000001d016c7aecc [0x000001d016c79980+0x000000000000154c]
J 16789 c2 org.eclipse.swt.widgets.EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V (592 bytes) @ 0x000001d016aac810 [0x000001d016aac780+0x0000000000000090]
J 24561 c2 org.eclipse.swt.widgets.Display.readAndDispatch()Z (94 bytes) @ 0x000001d0171c9a48 [0x000001d0171c96e0+0x0000000000000368]
j org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run()V+564
j org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(Lorg/eclipse/e4/ui/model/application/MApplicationElement;Lorg/eclipse/e4/core/contexts/IEclipseContext;)Ljava/lang/Object;+57
j org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(Lorg/eclipse/e4/ui/model/application/MApplicationElement;)V+20
j org.eclipse.ui.internal.Workbench.lambda$3(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;[I)V+452
j org.eclipse.ui.internal.Workbench$$Lambda$167.run()V+12
j org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12
j org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+16
j org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2
j org.simantics.workbench.internal.SimanticsWorkbenchApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+220
j org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+138
j org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+85
j org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+82
j org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+99
j org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+132
v ~StubRoutines::call_stub
j jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0 java.base@11.0.9.1
j jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+100 java.base@11.0.9.1
j jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6 java.base@11.0.9.1
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+59 java.base@11.0.9.1
j org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+201
j org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+159
j org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4
j org.eclipse.equinox.launcher.Main.main([Ljava/lang/String;)V+10
v ~StubRoutines::call_stub