Also reproducible from

public class Main {
    public static void main(String[] args) throws Exception {
        System.out.println(Class.forName("hudson.model.Queue$ItemList").getEnclosingClass());
    }
}

run against core/target/classes, if you have done mvn -f core -DskipTests clean package, but not if the last goal is merely compile. javap confirms that the bytecode of Queue.class is substantially different after the packaging step, presumably due to the bridge method injector running on scheduleMaintenance, though the InnerClasses attribute is not different. In both cases there is no mention of ItemList in InnerClasses, which would seem to violate the JVM spec since it is clearly used, for example as the type of the buildables field. There is a difference in how fields are named, for example

-         1: getfield      #2                  // Field buildables:Lhudson/model/Queue$ItemList;
+         1: getfield      #2                  // Field hudson/model/Queue.buildables:Lhudson/model/Queue$ItemList;
Change By: Jesse Glick (30/Jul/14 10:44 PM)
Attachment: Queue.diff
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to