Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55610

CloudShell Sandbox Plugin not compatible with JEP-200

    Details

    • Similar Issues:

      Description

      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:

        Attachments

          Activity

          Hide
          allan_burdajewicz Allan BURDAJEWICZ added a comment -

          The more straightforward solution is to add src/main/resources/META-INF/hudson.remoting.ClassFilter with the content:

          com.quali.cloudshell.QsServerDetails
          

          Another solution could be to store the details (serverAddress, user, pw, domain, ignoreSSL) and declare QsServerDetails server as transient

          Show
          allan_burdajewicz Allan BURDAJEWICZ added a comment - The more straightforward solution is to add src/main/resources/META-INF/hudson.remoting.ClassFilter with the content: com.quali.cloudshell.QsServerDetails Another solution could be to store the details ( serverAddress , user , pw , domain , ignoreSSL ) and declare QsServerDetails server as transient
          Hide
          tomeradmon Tomer Admon added a comment -

          Release 1.6.6

          Show
          tomeradmon Tomer Admon added a comment - Release 1.6.6

            People

            • Assignee:
              tomeradmon Tomer Admon
              Reporter:
              allan_burdajewicz Allan BURDAJEWICZ
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: