-
Improvement
-
Resolution: Done
-
Minor
-
None
There are a few cases where XStream internally passes its default instance of ReflectionConverter to other converter instances. When these converters drill down into their fields, they do not use RobustReflectionConverter and the overall conversion becomes subject to the same failures that RobustReflectionConverter was created to avoid. Here is a list of converters that are passed the default ReflectionConverter in XStream 1.3.1:
ThrowableConverter
RegexPatternConverter
SerializableConverter
LookAndFeelConverter
SelfStreamingInstanceChecker
In our case, the fact that the ThrowableConverter was not calling RobustReflectionConvert combined with an error in class member munging described in JENKINS-5768 to cause our build.xml deserializable to fail, cause the build in question to not be loaded into memory on startup.