-
Bug
-
Resolution: Fixed
-
Critical
-
Jenkins 2.138.4
cloudshell-sandbox: 1.6.3
The Global Configuration fails to persists. In the Jenkins logs, we see the following stacktrace:
2019-01-14 18:37:40.491+0000 [id=1812009] WARNING hudson.model.Descriptor#save: Failed to save /var/lib/jenkins/org.jenkinsci.plugins.cloudshell.CloudShellConfig.xml java.lang.UnsupportedOperationException: Refusing to marshal com.quali.cloudshell.QsServerDetails for security reasons; see https://jenkins.io/redirect/class-filter/ at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:546) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252) Caused: java.lang.RuntimeException: Failed to serialize org.jenkinsci.plugins.cloudshell.CloudShellConfig$DescriptorImpl#server for class org.jenkinsci.plugins.cloudshell.CloudShellConfig$DescriptorImpl at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37) at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026) at com.thoughtworks.xstream.XStream.marshal(XStream.java:1015) at com.thoughtworks.xstream.XStream.toXML(XStream.java:988) at hudson.XmlFile.write(XmlFile.java:193) Caused: java.io.IOException at hudson.XmlFile.write(XmlFile.java:200) at hudson.model.Descriptor.save(Descriptor.java:873) at org.jenkinsci.plugins.cloudshell.CloudShellConfig$DescriptorImpl.configure(CloudShellConfig.java:161) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:3734) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:3698) [...]
So upon restart the configuration is lost.
This is related to JEP-200: