Page MenuHomePhabricator

mitkNavigationToolStorageDeserializerTest fails due to error while loading scene file
Closed, ResolvedPublic

Description

Test method TestReadComplexToolStorage in mitkNavigationToolStorageDeserializerTest of MitkIGTTestDriver fails on Ubuntu. The following output is emitted:

1.225# ERROR: No property reader found for ShaderProperty
#1.225# ERROR: There were errors while loading property list file /tmp/SceneIOTempUID_20180126122053291552/eaaaaa. Your data may be corrupted
#1.225# ERROR: Could not load properties for node.
#1.225# ERROR: There were errors while loading scene file /tmp/SceneIOTempUID_20180126122053291552/index.xml. Your data may be corrupted
#1.225# ERROR: There were errors while loading scene file /tmpIGT_Toolfiles/NavigationTool0.tool/NavigationTool0.tool.storage. Your data may be corrupted
#1.246# ERROR: No property reader found for ShaderProperty
#1.246# ERROR: There were errors while loading property list file /tmp/SceneIOTempUID_20180126122053317717/faaaaa. Your data may be corrupted
#1.247# ERROR: Could not load properties for node.
#1.247# ERROR: There were errors while loading scene file /tmp/SceneIOTempUID_20180126122053317717/index.xml. Your data may be corrupted
#1.247# ERROR: There were errors while loading scene file /tmp
IGT_Toolfiles/NavigationTool1.tool/NavigationTool1.tool.storage. Your data may be corrupted
..#1.261# ERROR: Error: wrong file format!
(please only load tool storage files)
..

Event Timeline

eisenman triaged this task as Normal priority.Jan 26 2018, 2:21 PM
eisenman created this task.

.The first error "No property reader found for ShaderProperty" occurs when calling method DecorateNodeWithProperties (l. 132) within SceneReaderV1::LoadScene.

The error regarding the loading of the scene file is fixed by updating the test data. The test data was incompatible to the rendering backend (ShaderProperty does not exist anymore).

The last emitted error is still shown:
ERROR: Error: wrong file format!
(please only load tool storage files)

This output is misleading since it is a constructed error message which is used to throw an exception. It does not have to be logged during construction of the exception. Instead, the calling method should catch and handle the exception (e.g. by logging the message).