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

Improper XStream form for Result outside of a Run

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • core

      Run.<clinit> registers Result.conv so that build.xml can use a simple

      <result>SUCCESS</result>
      

      Yet this is only available for Run.XSTREAM, not, say, Items.XSTREAM. So a project using ReverseBuildTrigger will have the odd

      <threshold>
        <name>SUCCESS</name>
        <ordinal>0</ordinal>
        <color>BLUE</color>
        <completeBuild>true</completeBuild>
      </threshold>
      

      During deserialization, only the ordinal is considered by readResolve.

      We should rather have a

      public static final class ConverterImpl extends AbstractSingleValueConverter
      

      so that any field of type Result will be sanely handled; just need to ensure that an existing ReverseBuildTrigger is correctly restored.

      Of course it would have been better for this to be an enum but it seems too late to change that compatibly. There may be Java serialized forms of this floating around (for example, in Pipeline program.dat), and you cannot deserialize the old form without a customed input stream:

      java.io.InvalidClassException: cannot bind non-enum descriptor to an enum class
      	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
      	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630)
      	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
      

            Unassigned Unassigned
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: