nasa/fprime-gds

GDS Fails To Launch With Unknown Types In Dictionary

Joshua-Anderson opened this issue · 2 comments

F´ Version all

Problem Description

The GDS crashes on launch when provided with a dictionary containing references to a handcoded type. See: nasa/fprime#1643 (comment)

This may also apply to other complicated types like serlizables.

Expected Behavior

Instead of failing to launch, the GDS should launch but warn that it's unable to deserialize EVRs referencing the handcoded type.

I am trying out this modification.

diff --git a/src/fprime_gds/common/loaders/xml_loader.py b/src/fprime_gds/common/loaders/xml_loader.py
index b7e8984..4cc0e0c 100644
--- a/src/fprime_gds/common/loaders/xml_loader.py
+++ b/src/fprime_gds/common/loaders/xml_loader.py
@@ -180,7 +180,13 @@ class XmlLoader(dict_loader.DictLoader):
 
                 arg_name = arg_dict[self.ARG_NAME_TAG]
                 arg_type_name = arg_dict[self.ARG_TYPE_TAG]
-                arg_typ_obj = self.parse_type(arg_type_name, arg, xml_tree, context)
+
+                try:
+                    arg_typ_obj = self.parse_type(arg_type_name, arg, xml_tree, context)
+
+                # Return nothing if the args are at least partly nonsense
+                except exceptions.GseControllerParsingException:
+                    return []
 
                 arg_desc = None
                 if self.ARG_DESC_TAG in arg_dict: