System: Win64 VS 2017
How to reproduce:
# Load data with different geometriesan image (e.g. brain.nrrd from MITKData)
# Use a plugin with a node selection widget (keep node selectedand select the image (you could e.g. use org.mitk.gui.qt.datastorageviewertest, but any plugin with such a widget will do).
# Use "Close session"Project" button to remove all data
# Load new data.the image again.
# Crash
Error Message:
Ausgelöste Ausnahme: Lesezugriffsverletzung
"this" war "0xFFFFFFFFFFFFFFFF".
Location: mitkGeometryTransformHolder.cpp:168
lang=c++
mitk::AffineTransform3D *GeometryTransformHolder::GetIndexToWorldTransform() { return m_IndexToWorldTransform; }
A acces violation is provoked in some mapper code when traing to access a transform that is not properly initialized. The problem does not occure when #2 is skipped. Thus I assume that something is not cleaned up currectly, if the session is clossed, but a smartpointer is kept to a nodem_IndexToWorldTransform is not properly initialized wenn calling it ()operator.
The problem occured in context of selection widgets and could be patched for selection widgets in context of T26218.
But I would like to discuss it more explicitly because this problem could lead to crashes by any code that keeps smart pointers to node data, after they are removed from storage. The question is, why the mapper causes a violation and its data is invalid.