JENKINS-12735 - Maven Version Ranges #381

Closed
wants to merge 694 commits into
from
This pull request is big! We’re only showing the most recent 250 commits.
Commits on Aug 8, 2012
  1. Fixed a bug in Jenkins.overallNodeProvisioner

    kohsuke authored and U-FM\koonal committed May 24, 2012
    Until now, Jenkins.overallNodeProvisioner was tracking an inconsistent
    pair of numbers. On one hand, it was tracking all the executors in the
    system, but then it was also only tracking the # of free-roaming
    label-unassigned jobs as the queue length.
    
    So if all your slaves are set with Node.Mode.EXCLUSIVE and you have some
    free-roaming jobs, then it'll never tickle NodePrivisioner.
    
    In other words, the # of executors weren't reflecting the actual # of
    executors that can execute what's counted as the queue length.
    
    See the problem report at
    https://groups.google.com/forum/?fromgroups#!topic/jenkinsci-dev/bUwGEgOwv4Q
    
    To fix this, I introduced another LoadStatistics that only counts
    the # of executors that can execute free-roaming jobs, and # of
    free-roaming jobs as the queue length. In this way, two pairs of numbers
    are consistent.
    
    This now allows us to use overallLoadStatistics for really the entire
    system, including all executors and the total queue length. This is
    primarily for administrators to see the resource utilization, and it is
    not useful for NodeProvisioner input because it's mixing too many
    different things.
    
    The semantics change in OverallLoadStatistics.queueLength allows us to
    deprecate its totalQueueLength field.
  2. leaving the record of attempted gzip encoding problem fix.

    kohsuke authored and U-FM\koonal committed May 24, 2012
  3. Fixed grammatical error in build page message.

    cquinn authored and U-FM\koonal committed May 24, 2012
  4. Fixed PermGen OutOfMemoryError during full clean build.

    kohsuke authored and U-FM\koonal committed May 24, 2012
    Plexus compiler 1.8.6 that maven-compiler-plugin 2.4 has a static field
    to store a reference to the Javac class in tools.jar
    
    In JDK that I use (6u26), Javac has a static field that stores what
    appears to be a cache of jar files (ZipFileIndex.zipFileIndexCache).
    And in addition, Maven instantiates a separate ClassRealm to host plugin
    jar files when a project has any build extensions.
    
    The combined result is that during a build, we end up having multiple
    copies of URLClassLoader that loads tools.jar, and each ends up caching
    jar files it was used. This puts a pressure to permgen (although I
    couldn't pinpoint which portions of those caches use permgen), resulting
    in OOME.
    
    In Plexus compiler 1.9, Olivier added a new feature to control the
    caching/reuse of Javac compiler. While this apparently was done
    primarily for fixing concurrency issues in multi-threaded builds, it is
    also a useful mechanism to prevent the retention of Javac classes.
    
    So I pushed the SNAPSHOT version of maven-compiler-plugin as
    2.5-jenkins-1 and tweaking POM to use it.
  5. avoid using deprecated method

    kohsuke authored and U-FM\koonal committed May 24, 2012
  6. bit of simplification

    kohsuke authored and U-FM\koonal committed May 24, 2012
  7. Updated to the instance identity 1.2.

    kohsuke authored and U-FM\koonal committed May 24, 2012
  8. Implemented transport security to CLI connection.

    kohsuke authored and U-FM\koonal committed May 24, 2012
    It uses Diffie Hellman to come up with one-time session key, then have
    the server sign this session key to allow the client to verify that
    there's no man in the middle.
  9. Generalized AgentProtocol into an extension point.

    kohsuke authored and U-FM\koonal committed May 24, 2012
  10. follow up fix to d2699b4

    kohsuke authored and U-FM\koonal committed May 25, 2012
    Further reduce the scope of the lock to only cover jobNames access, which is mandatory. if ig.doCreateItem requires synchronization, that's a job of ig.doCreateItem implementation, not that of ListView.
  11. Update Spanish translation

    manolo authored and U-FM\koonal committed May 24, 2012
  12. use a non forked compiler plugin version. Hey you cannot wait 3 days …

    olamy authored and U-FM\koonal committed May 28, 2012
    …? :-)
  13. modify comment on compiler plugin

    olamy authored and U-FM\koonal committed May 28, 2012
  14. updated changelog for release

    kohsuke authored and U-FM\koonal committed May 29, 2012
  15. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed May 29, 2012
  16. creating an RC branch

    kohsuke authored and U-FM\koonal committed May 30, 2012
  17. the trunk is toward 1.468-SNAPSHOT

    kohsuke authored and U-FM\koonal committed May 30, 2012
  18. Revised version of Extension

    BerkOFF authored and U-FM\koonal committed May 23, 2012
  19. Expanded to cover MatrixBuild, not just MatrixRun.

    kohsuke authored and U-FM\koonal committed May 25, 2012
    For example, a common use cases are:
    
    - skip the parent checkout and only do the checkout in MatrixRun
    - check out only once in MatrixBuild and then let all MatrixRuns build from the same directory
    
    Accoringly,
    
    - renamed classes to drop 'Run' since now they cover 'Build' as well.
    - instead of using the boolean return value to indicate the fallback to
      default, using some backdoor to have the default implementation do
      this. I think this keeps the abstraction cleaner for the implementor
      of the extension point.
  20. Doc improvements

    kohsuke authored and U-FM\koonal committed May 25, 2012
  21. no practical harm in setting this to null

    kohsuke authored and U-FM\koonal committed May 25, 2012
  22. if there's nothing for the user to select, display nothing.

    kohsuke authored and U-FM\koonal committed May 25, 2012
  23. After playing with it, I now see why it should apply to all AbstractP…

    kohsuke authored and U-FM\koonal committed May 26, 2012
    …roject.
    
    ... not from user's point of view, but more from implementation point of
    view (and this can be used to push SCM retry counts out of the core.)
    
    To avoid cluttering the UI unnecessarily, adding isApplicable() to
    SCMCheckoutStrategyDescriptor so that it can nominate itself only for
    matrix projects.
  24. reverting access modifiers

    kohsuke authored and U-FM\koonal committed May 26, 2012
  25. Renamed Runner family into *Execution.

    kohsuke authored and U-FM\koonal committed May 29, 2012
    ... so that we can expose them as an object that keeps track of
    execution-scoped objects.
  26. no 'main' directory any more

    kohsuke authored and U-FM\koonal committed May 29, 2012
  27. improved error diagnostics

    kohsuke authored and U-FM\koonal committed May 29, 2012
  28. Widening of this exception incorrectly caught InterruptedException.

    kohsuke authored and U-FM\koonal committed May 29, 2012
    Narrowing it down to reduce the harm.
  29. Removed pointless private methods.

    kohsuke authored and U-FM\koonal committed May 29, 2012
  30. Integrate newer trilead that has bigger buffer.

    kohsuke authored and U-FM\koonal committed May 29, 2012
    This is expected to improve the burst data transfer performance.
  31. fix garbled mail headers (From/To/ReplyTo).

    murank authored and U-FM\koonal committed May 13, 2012
  32. [FIXED JENKINS-13735]

    fma1977 authored and U-FM\koonal committed May 23, 2012
    Added test whether the currently checked slave computer actually can take the buildable item before flagging it as needed (avoids powering up and connecting to slaves for jobs they can't build).
  33. Now it comes with its own <license> header.

    kohsuke authored and U-FM\koonal committed May 29, 2012
    ... so no need to complete it.
  34. [FIXED JENKINS-13496 JENKINS-12854] Integrated the newer version of W…

    kohsuke authored and U-FM\koonal committed May 29, 2012
    …instone.
  35. Allow the tree parameter and the xpath parameter to be used together …

    kohsuke authored and U-FM\koonal committed May 29, 2012
    …in the REST API.
    
    Previously, the presence of the xpath parameter suppressed the tree
    parameter processing. This change fixes that so that the tree parameter
    can be used for building small DOM, then XPath to manipulate the data
    further.
  36. External monitor job type is moved to a plugin.

    kohsuke authored and U-FM\koonal committed May 30, 2012
    The actual release needs to happen in a lock step, as the new plugin
    needs to require yet-to-be-released version of the core. So for the time
    being it's a snapshot dependency, deployed in the snapshot repository.
  37. Follow up fix to 00a221d

    kohsuke authored and U-FM\koonal committed May 30, 2012
    The code wasn't compiling. Oops.
  38. Moved some of the entries here.

    kohsuke authored and U-FM\koonal committed May 30, 2012
    ... since they didn't go to RC.
  39. Making it easy to activate the animal-sniffer Java5 check.

    kohsuke authored and U-FM\koonal committed May 30, 2012
    I originally attempted to define this in a profile that can be activated
    from a child POM, but looking at MNG-3228
    <http://jira.codehaus.org/browse/MNG-3228>, it appears that such use of
    profiles aren't possible.
    
    So I'm falling back to the <pluginManagement>, which can be activated
    via the following fragment in build/plugins/plugin:
    
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>animal-sniffer-maven-plugin</artifactId>
      <!-- details defined in the parent POM -->
    </plugin>
  40. Splitting off LDAP and PAM auth plugin.

    kohsuke authored and U-FM\koonal committed May 30, 2012
  41. LDAP is now a bundled plugin

    kohsuke authored and U-FM\koonal committed May 30, 2012
  42. PAM authentication is now a bundled plugin

    kohsuke authored and U-FM\koonal committed May 30, 2012
  43. One more file to be removed for LDAP

    kohsuke authored and U-FM\koonal committed May 30, 2012
  44. adding in those dependencies

    kohsuke authored and U-FM\koonal committed May 30, 2012
  45. fixed a persistence problem in Queue.

    kohsuke authored and U-FM\koonal committed May 30, 2012
    Queue.BlockedItem is not static, and so if items include this type, it ends up trying to persist the whole Queue instance, which will never work.
    Sample stack trace below:
    
    java.lang.RuntimeException: Failed to serialize hudson.model.Queue$BlockedItem#this$0 for class hudson.model.Queue$BlockedItem
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:55)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:98)
    	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:38)
    	at com.thoughtworks.xstream.XStream.marshal(XStream.java:840)
    	at com.thoughtworks.xstream.XStream.marshal(XStream.java:829)
    	at com.thoughtworks.xstream.XStream.toXML(XStream.java:804)
    	at hudson.XmlFile.write(XmlFile.java:173)
    	at hudson.model.Queue.save(Queue.java:349)
    	at jenkins.model.Jenkins.cleanUp(Jenkins.java:2575)
    	at org.jvnet.hudson.test.HudsonTestCase.tearDown(HudsonTestCase.java:381)
    	at junit.framework.TestCase.runBare(TestCase.java:140)
    	at org.jvnet.hudson.test.HudsonTestCase.runBare(HudsonTestCase.java:286)
    	at junit.framework.TestResult$1.protect(TestResult.java:110)
    	at junit.framework.TestResult.runProtected(TestResult.java:128)
    	at junit.framework.TestResult.run(TestResult.java:113)
    	at junit.framework.TestCase.run(TestCase.java:124)
    	at junit.framework.TestSuite.runTest(TestSuite.java:243)
    	at junit.framework.TestSuite.run(TestSuite.java:238)
    	at com.sun.maven.junit.LocalTestCaseRunner.runTests(LocalTestCaseRunner.java:142)
    	at com.sun.maven.junit.LocalTestCaseRunner.runTestCase(LocalTestCaseRunner.java:62)
    	at com.sun.maven.junit.LocalTestCaseRunner.runTestCase(LocalTestCaseRunner.java:58)
    	at sun.reflect.GeneratedMethodAccessor352.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274)
    	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:255)
    	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:215)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    	at hudson.remoting.Request$2.run(Request.java:270)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.model.Queue#parked for class hudson.model.Queue
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 47 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.Thread#group for class hudson.model.Executor
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:57)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 55 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.ThreadGroup#threads for class java.lang.ThreadGroup
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 68 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.Thread#threadLocals for class hudson.remoting.Channel$ReaderThread
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 76 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.ThreadLocal$ThreadLocalMap#table for class java.lang.ThreadLocal$ThreadLocalMap
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 89 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.ThreadLocal$ThreadLocalMap$Entry#value for class java.lang.ThreadLocal$ThreadLocalMap$Entry
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 97 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.remoting.Channel#executor for class hudson.remoting.Channel
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 110 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.util.concurrent.ThreadPoolExecutor#workers for class java.util.concurrent.ThreadPoolExecutor
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 118 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.util.concurrent.ThreadPoolExecutor$Worker#thread for class java.util.concurrent.ThreadPoolExecutor$Worker
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:55)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 126 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.Thread#threadLocals for class java.lang.Thread
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 139 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.ThreadLocal$ThreadLocalMap#table for class java.lang.ThreadLocal$ThreadLocalMap
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 147 more
    Caused by: java.lang.RuntimeException: Failed to serialize java.lang.ref.Reference#referent for class java.lang.ThreadLocal$ThreadLocalMap$Entry
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 155 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.InjectorImpl$1#this$0 for class com.google.inject.internal.InjectorImpl$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 168 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.InjectorImpl#state for class com.google.inject.internal.InjectorImpl
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 176 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.InheritingState#explicitBindingsMutable for class com.google.inject.internal.InheritingState
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 184 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.BindingImpl#internalFactory for class com.google.inject.internal.ProviderInstanceBindingImpl
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:58)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 192 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.InternalFactoryToProviderAdapter#provider for class com.google.inject.internal.InternalFactoryToProviderAdapter
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 205 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.ExtensionFinder$GuiceFinder$4$1#val$base for class hudson.ExtensionFinder$GuiceFinder$4$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 213 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.Scopes$1$1#val$creator for class com.google.inject.Scopes$1$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 221 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.ProviderToInternalFactoryAdapter#internalFactory for class com.google.inject.internal.ProviderToInternalFactoryAdapter
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 229 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.InternalFactoryToInitializableAdapter#initializable for class com.google.inject.internal.InternalFactoryToInitializableAdapter
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 237 more
    Caused by: java.lang.RuntimeException: Failed to serialize com.google.inject.internal.Initializables$1#val$instance for class com.google.inject.internal.Initializables$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 245 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.ExtensionFinder$GuiceFinder$SezpozModule$1#this$1 for class hudson.ExtensionFinder$GuiceFinder$SezpozModule$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 253 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.ExtensionFinder$GuiceFinder$SezpozModule#index for class hudson.ExtensionFinder$GuiceFinder$SezpozModule
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 261 more
    Caused by: java.lang.RuntimeException: Failed to serialize net.java.sezpoz.IndexItem#instance for class net.java.sezpoz.IndexItem
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:55)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 269 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.node_monitors.AbstractNodeMonitorDescriptor#record for class hudson.node_monitors.ClockMonitor$1
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 282 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.node_monitors.AbstractNodeMonitorDescriptor$Record#data for class hudson.node_monitors.AbstractNodeMonitorDescriptor$Record
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 290 more
    Caused by: java.lang.RuntimeException: Failed to serialize hudson.slaves.SlaveComputer#taskListener for class hudson.slaves.SlaveComputer
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:167)
    	at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:135)
    	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:130)
    	at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:120)
    	at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:94)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
    	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
    	at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:57)
    	at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:68)
    	at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
    	at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:176)
    	at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:163)
    	... 298 more
  46. doc improvement

    kohsuke authored and U-FM\koonal committed May 30, 2012
  47. Fixed a hang test in ci.jenkins-ci.org

    kohsuke authored and U-FM\koonal committed May 30, 2012
    It appears that this manually registered extension lives longer than the
    single test and causing later tests to block forever.
    
    Normally HudsonTestCase.tearDown() is supposed to clear it, but the
    exception in the tearDown() prevented that code from getting executed.
  48. follow-up to 642a57c

    kohsuke authored and U-FM\koonal committed May 30, 2012
    There's no guarantee that the tearDown method completes, so make sure we have clean environment by doing this in the setUp.
  49. Doc fix

    kohsuke authored and U-FM\koonal committed May 30, 2012
  50. Jenkins!

    kohsuke authored and U-FM\koonal committed May 30, 2012
  51. run all tests with some time out to avoid infinite hang

    kohsuke authored and U-FM\koonal committed May 30, 2012
  52. call layout updater when we touch DOM

    kohsuke authored and U-FM\koonal committed May 30, 2012
  53. Improved the image generation script.

    kohsuke authored and U-FM\koonal committed May 31, 2012
    In particular, so that flashing animation gif uses transparent
    background where possible.
  54. Integrated the new animation GIF images that have more transparent ba…

    kohsuke authored and U-FM\koonal committed May 31, 2012
    …ckground.
    
    Going beyond this requires CSS animation.
  55. Require the Jenkins.RUN_SCRIPTS permission for the Maven Probe groovy…

    recampbell authored and U-FM\koonal committed May 31, 2012
    … execution
  56. Require Jenkins.RUN_SCRIPTS for GroovyshCommand

    recampbell authored and U-FM\koonal committed May 31, 2012
  57. Human readable size of files

    lvotypko authored and U-FM\koonal committed May 31, 2012
  58. Fixed ambiguity problem in Eclipse

    kutzi authored and U-FM\koonal committed Jun 2, 2012
  59. I was getting IndexOutOfBoundExceptions on callStack.get() which mean…

    kutzi authored and U-FM\koonal committed Jun 2, 2012
    …s that there must be concurrent access (maybe via JS worker threads) => synchronize access to callstack
  60. Make data consistency self-healing.

    kohsuke authored and U-FM\koonal committed Jun 4, 2012
    Ryan discovered an instance where Label cached data at incorrect state. I'm not sure exactly how this is caused, but it probably is some kind of data race.
    
    Making it self-healing would hopefully eliminate this problem in practice.
  61. Introduce PluginManager.UPLOAD_PLUGINS permission which allows a user…

    recampbell authored and U-FM\koonal committed Jun 1, 2012
    … to upload arbitrary plugins.
  62. Add PluginManager.CONFIGURE_UPDATECENTER permission which allows a us…

    recampbell authored and U-FM\koonal committed Jun 1, 2012
    …er to configure update sites and proxy info.
  63. Hide the advanced tab if user doesn't can't UPLOAD_PLUGINS or CONFIGU…

    recampbell authored and U-FM\koonal committed Jun 1, 2012
    …RE_UPDATECENTER
  64. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 5, 2012
  65. [JENKINS-13909] don't keep legacy *.hpi when uploading a plugin

    ndeloof authored and U-FM\koonal committed Jun 1, 2012
    even jenkins takes care to load jpi first, this is confusing
  66. fix backward comp

    olamy authored and U-FM\koonal committed Jun 5, 2012
  67. add @since for a new method in 1.466

    olamy authored and U-FM\koonal committed Jun 5, 2012
  68. Completed the new extension point.

    kohsuke authored and U-FM\koonal committed Jun 5, 2012
    Adding a test and fixed a broken databinding (because of SCM vs Scm)
  69. the trunk is toward 1.469-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
  70. doc improvement

    kohsuke authored and U-FM\koonal committed Jun 5, 2012
  71. allowed plugins to implement subtypes of the Search class to provide …

    kohsuke authored and U-FM\koonal committed Jun 5, 2012
    …different search implementations
  72. In ListView, wrap the list of jobs inside a scrollable div.

    Vlatombe authored and U-FM\koonal committed May 31, 2012
    When managing instances with lots of jobs, the size of the view
    configuration screen becomes huge because there is one line per job on
    the instance.
  73. fixed a bug in the neighbor field discovery.

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
    Previously, the code was "find the nearby element of the expected @name,
    then make sure it has gotten the right parent."
    
    So if the structure is like:
    
      {/* outer object */
          name: "parent-name",  /* A */
    
          child1: {/* inner object */
            name: "child-name" /* B */
          },
    
          child2: {/* inner object */
            name: "child-name" /* C */
          }
      }
    
    ... and if we are looking for "../name", it finds B, and it gets
    rejected, so we won't be able to find A, which is what we are supposed
    to find.
    
    With this change, we keep trying until we find the right one,
    so the above case will correctly return A.
  74. supported more complex relative path

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
  75. added UI sample fo contextual form field validation

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
  76. [FIXED JENKINS-13378] Remove XML string writer from IOException2 when…

    thomasvandoren authored and U-FM\koonal committed Apr 7, 2012
    … XPath error occurs.
    
    Remove XML string writer from IOException2 message when XPath error
    occurs in /api/xml request.
    
    The XML string writer has the potential to be very large (many
    megabytes or even gigabytes) and these exceptions will be logged to
    the default jenkins logfile by winstone. This has the potential to
    quickly use all available disk space if, for example, a jenkins poller
    (i.e. a chrome extension) makes frequent calls to the API that cause
    errors.
  77. [JENKINS-13378] Update changelog.html with fix.

    thomasvandoren authored and U-FM\koonal committed Apr 9, 2012
  78. added a mechanism to run test without a Jenkins instance

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
  79. Improved the mechanism of how we store passwords hashed.

    kohsuke authored and U-FM\koonal committed Jun 6, 2012
  80. SNAPSHOT plugins have been released

    ndeloof authored and U-FM\koonal committed Jun 7, 2012
  81. fixed test error. we expected application/json.

    ssogabe authored and U-FM\koonal committed Jun 7, 2012
  82. fixed NPE

    kohsuke authored and U-FM\koonal committed Jun 8, 2012
  83. do not approximate the aggregated test result.

    kohsuke authored and U-FM\koonal committed Jun 8, 2012
    AggregatedTestResultAction remembers the exact build # of the child build, so honor that number, and don't let MatrixBuild.getRunFor(Configuration) picks up some earlier run.
    
    The problem was discovered in the following situation:
    
     - there's a matrix project M with single configuration X
     - M #868 run normally, with 69 failures.
     - M #869 run with 258 failures, and that was reported in MatrixTestResult.add(AbstractTestResultAction), updating  the total count.
     - but for whatever reason, X #869 is lost
     - now if you look at M #869 test report, you'll see 258 as the total count, but the detail drill down would show 69, from X #868.
    
    ----
    (05:25:57 PM) veebers: Hi all, I  have an odd issue with the 'test results'
    (05:26:12 PM) veebers: In this result: Test Result (258 failures / +189) where could the +189 come from?
    (05:26:20 PM) veebers: I can only actually see 69 failed tests :P
    (05:26:48 PM) kohsuke: it means comparing to the last test result, you got 189 more failure
    (05:27:37 PM) veebers: ah ok, but how can I have +189 failing tests when there are only 69 failed this time around?
    (05:28:21 PM) kohsuke: I wonder if it cuts off the summary display at 70 (out of your 258 failures)?
    (05:29:48 PM) veebers: Hmmm, kohsuke I don't know about that. Clicking the 'show all failed tests'  only shows 69 tests :P
    (05:30:22 PM) veebers: and when I look at a prev. failing test, one that has ~200 fails
    (05:30:24 PM) veebers: it shows the lot
    (05:31:07 PM) kohsuke: veebers: want to do the screenshot?
    (05:34:59 PM) veebers: kohsuke: sure: http://static.inky.ws/image/2143/image.jpg
    (05:35:40 PM) kohsuke: this is a matrix project that just has one configuration?
    (05:35:49 PM) kohsuke: Or is it a partial re-run?
    (05:35:53 PM) mode (+o abayer) by ChanServ
    (05:36:46 PM) veebers: first option. Only one config
    (05:37:56 PM) kohsuke: I wonder if this is some kind of rendering gritch
    (05:38:06 PM) kohsuke: perhaps if somehow it's showing the data of the previous run?
    (05:38:24 PM) kohsuke: 69+189=258 can't be a coincidence
    (05:38:53 PM) kohsuke: is this instance publicly visible?
    (05:39:25 PM) veebers: err not that one, just checking if the results are published to the public one
    (05:41:16 PM) veebers: hmm, that's odd. The publicly avail. one isn't showing the right details :P
    (05:41:24 PM) kohsuke: URL?
    (05:41:26 PM) veebers: well, perhaps there is something screwy with that setup
    (05:42:14 PM) veebers: kohsuke: https://jenkins.qa.ubuntu.com/job/dx-autopilot-run/869/
    (05:43:33 PM) veebers: kohsuke: although I don't think that's going to be much help as that gives me a 500 error :P
    (05:43:45 PM) kohsuke: that's a bug of its own
    (05:43:51 PM) kohsuke: I think I can fix that one
    (05:50:29 PM) kohsuke: veebers: I think I have a hypothesis
    (05:51:00 PM) kohsuke: when you do click that 69 failed tests reported under a configuration, I suspect you'll be actually taken to the different build number
    (05:51:23 PM) kohsuke: likely the same configuration build of the previous one
    (05:53:02 PM) veebers: kohsuke: hmm, not sure that's it.
    (05:53:10 PM) veebers: it's the same build number all over
    (05:53:53 PM) kohsuke: I'm pretty sure that's it
    (05:54:01 PM) kohsuke: let me think of other ways to prove this
    (05:54:27 PM) veebers: sure
    (05:54:36 PM) kohsuke: try /job/dx-autopilot-run/869/label=1EBEE0FF-DAC9-11DF-BBDA-64A98C34D485/parentBuild/
    (05:54:43 PM) kohsuke: and I predict you'll see #868 in the UI
    (05:54:45 PM) veebers: so, the public page there says: Test Result (258 failures / +189)
    (05:55:16 PM) veebers: When I click that link in the private server it takes me to that report you saw in the screenshot
    (05:55:43 PM) veebers: which says: .../869/testReport/
    (05:55:52 PM) veebers: and any other link on that page references 869
    (05:56:04 PM) veebers: so perhaps it's somewhere in the background that might be accessing a prev build?
    (05:56:36 PM) veebers: i.e. whatever builds up the top graph bar (at the top of the page) in server end rendering?
    (05:56:50 PM) kohsuke: does /job/dx-autopilot-run/869/ show gray ball?
    (05:57:27 PM) veebers: no, it shows the default config
    (05:57:37 PM) veebers: (yeah, something is wrong with the public facing one :P)
    (05:59:29 PM) veebers: not sure why you can't click through
    (06:00:40 PM) veebers: kohsuke: ah, looks like you are correct
    (06:00:50 PM) veebers: I was looking in the wrong place
    (06:01:01 PM) veebers: kohsuke: d'oh, thanks for pointing that out :)
    (06:01:41 PM) kohsuke: OK, I understand what happened
    (06:02:38 PM) veebers: so yeah, clicking on that config, I can see the line: Started by upstream project dx-autopilot-run build number 868
    (06:04:37 PM) kohsuke: #869 really did have 258 failures, but for some reason Jenkins lost the record of it
    (06:05:02 PM) kohsuke: and when it's displaying this to you, it's approximating the lost record by using the nearest build, that was #868
    (06:05:20 PM) kohsuke: and that's why the public instance, which runs ancient version of Jenkins, reports NPE
    (06:05:30 PM) kohsuke: this version doesn't have that approximation feature
    (06:05:42 PM) kohsuke: veebers: BTW you really should upgrade that publicly facing instance
    (06:06:00 PM) kohsuke: there have been some security advisories issued since then
    (06:06:11 PM) veebers: kohsuke: Makes sense, will get onto that
    (06:06:30 PM) kohsuke: I'm fixing this in the trunk so that it doesn't incorrectly approximate here
    (06:06:36 PM) veebers: nice
  84. doc improvement

    kohsuke authored and U-FM\koonal committed Jun 9, 2012
  85. formatting changes

    kohsuke authored and U-FM\koonal committed Jun 9, 2012
  86. added ability to wait for the start of a build in a future, not just …

    kohsuke authored and U-FM\koonal committed Jun 9, 2012
    …the end of it.
  87. Fixed a classloader problem

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  88. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  89. I botched 1.469 release, so skipping that and moving on to 1.470

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
    This is a precautionary measure against those Maven proxies that might
    have already cached 1.469 binaries while they were out.
  90. the trunk is toward 1.471-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  91. Added support for runtime modifiable Axis

    emanuelez authored and U-FM\koonal committed Apr 18, 2012
    Sometimes there's the need to change the value of an axis right when the build starts.
    I did this adding a couple of methods to Axis and letting MatrixBuild use them.
    It should all be backwards compatible.
  92. Reworked the dynamically modifiable Axis.

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
    I thought about this and decided that the best way to incorporate this
    expansion of the abstraction is to think of it as a re-configuration of
    project right before the build.
    
    This resolves my concern with the previous change of calling expensive
    rebuildConfigurations() from every getActiveConfigurations() call (and
    getter shouldn't have a side-effect, right?)
    
    Also, in this way, Axis gets a reference to MatrixBuildExecution, so it
    makes it more explicit that the Axis can update values based on the
    current build.
  93. Defining the contract for aggregating environment variables.

    kohsuke authored and U-FM\koonal committed Apr 14, 2012
  94. added a convenience method

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  95. moving the logic from core to an extension point implementation

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  96. this should be done in the reverse order.

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  97. Refactored existing static list into CoreEnvironmentContributor.

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
  98. allow SCM classes to have buildEnv.groovy since SCM can contirbute en…

    kohsuke authored and U-FM\koonal committed Jun 11, 2012
    …vironment variables
  99. Updating to Jetty 8 to get full stack trace in case of an error.

    kohsuke authored and U-FM\koonal committed Jun 12, 2012
  100. Not exactly sure if these are truly needed, but J-on-J otherwise fail…

    kohsuke authored and U-FM\koonal committed Jun 12, 2012
    …s with compilation error.
    
    It's apparently failing to properly deduce the JobT type. Making it explicit to avoid stretching the compiler
  101. releasing a new plugin parent POM

    kohsuke authored and U-FM\koonal committed Jun 12, 2012
  102. toward the next release

    kohsuke authored and U-FM\koonal committed Jun 12, 2012
  103. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 12, 2012
  104. Do not use & in url

    lvotypko authored and U-FM\koonal committed Jun 13, 2012
  105. Make it easier to see which characters will be encoded

    ohtake authored and U-FM\koonal committed Jun 13, 2012
  106. Update doc for #494

    ohtake authored and U-FM\koonal committed Jun 13, 2012
  107. releasing a new plugin parent POM

    kohsuke authored and U-FM\koonal committed Jun 13, 2012
  108. toward the next release

    kohsuke authored and U-FM\koonal committed Jun 13, 2012
  109. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 13, 2012
  110. the trunk is toward 1.472-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jun 13, 2012
  111. Fix UtilTest and replace ampersand in method encode too

    lvotypko authored and U-FM\koonal committed Jun 13, 2012
  112. Evn variable wasn't actually populated by computer variables

    vjuranek authored and U-FM\koonal committed Jun 14, 2012
  113. doc improvement

    kohsuke authored and U-FM\koonal committed Jun 14, 2012
  114. [FIXED JENKINS-14113]

    kohsuke authored and U-FM\koonal committed Jun 15, 2012
    The proposed fix buckett@eec16f1 has a problem in that it'd allow anything that has the given URL name as a prefix.
  115. [FIXED JENKINS-11251]

    kohsuke authored and U-FM\koonal committed Jun 16, 2012
    The actual meat of the change is in remoting.
  116. doc improvement

    kohsuke authored and U-FM\koonal committed Jun 19, 2012
  117. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 19, 2012
  118. the trunk is toward 1.473-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jun 19, 2012
  119. fix license generation issue with encoding

    ndeloof authored and U-FM\koonal committed Jun 18, 2012
  120. Revert "Revert "Improved the mechanism of how we store passwords hash…

    ndeloof authored and U-FM\koonal committed Jun 19, 2012
    …ed.""
  121. Add a message to explain why startup failed

    timp authored and U-FM\koonal committed Jun 19, 2012
  122. exposing XStream

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
  123. added data structure useful to capture part of the XStream XML format…

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
    … as a DOM like structure.
  124. These files were at a wrong folder.

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
  125. added TreeString code.

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
    This code was originally developed for analysis-core plugin, but I think it's useful outside it.
    I'm promoting this up to core
  126. [FIXED JENKINS-14142] Unnecessarily verbose warning if mojo is loaded…

    kutzi authored and U-FM\koonal committed Jun 20, 2012
    … from a directory
  127. support jobs nested inside ItemGroups

    ndeloof authored and U-FM\koonal committed Jun 22, 2012
    (cloudbees folder plugin as a sample impl)
  128. Put Computer.CREATE in the COMPUTER permission group

    recampbell authored and U-FM\koonal committed Jun 15, 2012
  129. Updated Serbian translation with matching curly braces.

    kukido authored and U-FM\koonal committed Jun 22, 2012
    [FIXED JENKINS-13695]
  130. Revert "Updated Serbian translation with matching curly braces."

    kukido authored and U-FM\koonal committed Jun 22, 2012
    This reverts commit e2303ef.
  131. bug fix when there's no children nor value

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
  132. bug fix. handle name escaping like other reader/writers

    kohsuke authored and U-FM\koonal committed Jun 20, 2012
  133. deprecating 'fooButton' class in favor of 'foo-button'

    kohsuke authored and U-FM\koonal committed Jun 22, 2012
    This makes it consistent with other buttons like repeatable-add-button, and use of '-' prevents name collisions with form names, and make all of those UI controls addressible in the same namespace
  134. copy & keep CSS class names

    kohsuke authored and U-FM\koonal committed Jun 22, 2012
  135. Added code to assist form-element-path plugin

    kohsuke authored and U-FM\koonal committed Jun 23, 2012
  136. Improving functionality

    kohsuke authored and U-FM\koonal committed Jun 23, 2012
  137. oopts

    kohsuke authored and U-FM\koonal committed Jun 23, 2012
  138. Wrong variable name

    kohsuke authored and U-FM\koonal committed Jun 23, 2012
  139. Bumping up to 1.39

    kohsuke authored and U-FM\koonal committed Jun 23, 2012
    1.40 brings in 1.7 support, but I'm still seeing some bug reports.
    Waiting a bit more before going there.
  140. Corrected changelog: actually 11073 was first fixed in 1.447

    kutzi authored and U-FM\koonal committed Jun 24, 2012
  141. I guess it was just an oversight from Kohsuke to put these tests unde…

    kutzi authored and U-FM\koonal committed Jun 24, 2012
    …r src/main as Maven won't run them if not located under src/test
  142. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jun 25, 2012
  143. Update transient actions of configurations in the same way as actions…

    lvotypko authored and U-FM\koonal committed Jun 25, 2012
    … of matrix project
  144. the trunk is toward 1.474-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jun 25, 2012
  145. Fixing typo in French translation (JENKINS-13274).

    olivierlemasle authored and U-FM\koonal committed Jun 27, 2012
  146. exposed NonLocalizable for consumption by others

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
  147. made these classes serializable

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
  148. allow subtypes to tweak the graph

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
  149. allow programmatic addition of Action to Computer

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
  150. Revert "Fixing typo in French translation (JENKINS-13274)."

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
    This reverts commit ee64520.
    It appears that the author edited this file with UTF-8 encoding when
    this file is actually iso-8859-1 encoded
  151. [FIXED JENKINS-13274]

    kohsuke authored and U-FM\koonal committed Jun 27, 2012
    reapplied the correct fix.
  152. use better encoding for french characters.

    olamy authored and U-FM\koonal committed Jun 28, 2012
  153. oops it's lower case here.

    olamy authored and U-FM\koonal committed Jun 28, 2012
  154. splitting JavaScript into smaller fragments for better maintainability.

    kohsuke authored and U-FM\koonal committed Jun 28, 2012
    One of the problems with the current way Jenkins puts JavaScripts is that most everything is in a single file. It doesn't highlight the relationship between those fragments and their corresponding tag files.
    
    So I'm experimenting with moving out these fragments into individual JavaScript files co-located with the tag file. They then get loaded into the page via <st:adjunct>. Each script is served with unique URL such that the browser will not even have to try conditional GET when loading different pages, so this should prevent the performance problem caused by the fact that there are now lots of <script> tags in the page.
    
     If for some reason even this turns out to be a problem, we can always add additional build steps to concatenate them all.
  155. exposing items to URL

    kohsuke authored and U-FM\koonal committed Jun 29, 2012
  156. follow-up bug fix to 7bcc810

    kohsuke authored and U-FM\koonal committed Jun 29, 2012
  157. [JENKINS-14178] Adding SCM poll listener

    wolfgarnet authored and U-FM\koonal committed Jun 21, 2012
  158. Make Jenkins stop polling resources if the page is not visible (and i…

    gragera authored and U-FM\koonal committed Jun 22, 2012
    …f the browser supports Page Visibility API), restoring pollings when the page becomes visible again. This will make tabs in the background to not consume resources
  159. Better encapsulation of JavaScript.

    kohsuke authored and U-FM\koonal committed Jun 30, 2012
    Don't expose stuff that need not be exposed.
  160. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jul 2, 2012
  161. the trunk is toward 1.475-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jul 2, 2012
  162. Fix NPE during loading matrix job

    lvotypko authored and U-FM\koonal committed Jul 2, 2012
  163. utility methods to manage canonical name (fullname from jenkins root)

    ndeloof authored and U-FM\koonal committed Jul 6, 2012
    and item renaming in relative item names
  164. use a more explicit method name

    ndeloof authored and U-FM\koonal committed Jul 9, 2012
  165. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jul 10, 2012
  166. [FIXED JENKINS-14330] NPE.

    jglick authored and U-FM\koonal committed Jul 5, 2012
  167. Unused import.

    jglick authored and U-FM\koonal committed Jul 5, 2012
  168. Typo.

    jglick authored and U-FM\koonal committed Jul 5, 2012
  169. @since

    jglick authored and U-FM\koonal committed Jul 10, 2012
  170. Javadoc edit.

    jglick authored and U-FM\koonal committed Jul 10, 2012
  171. [FIXED JENKINS-14365] Show a ChangeLogSet.Entry.revision as a <li> va…

    jglick authored and U-FM\koonal committed Jul 10, 2012
    …lue only if it is in fact an Integer.
  172. Fixed link.

    jglick authored and U-FM\koonal committed Jul 10, 2012
  173. Fixed link.

    jglick authored and U-FM\koonal committed Jul 11, 2012
  174. the trunk is toward 1.476-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jul 11, 2012
  175. Mangled Javadoc.

    jglick authored and U-FM\koonal committed Jul 15, 2012
  176. deploy group metadata for plugins

    ndeloof authored and U-FM\koonal committed Jul 12, 2012
    maven plugin need to populate group-level metadata.xml
    with plugin prefix
  177. Log the exception when there is some problem in detemining changelog …

    vjuranek authored and U-FM\koonal committed Jul 16, 2012
    …author
  178. Javadoc.

    jglick authored and U-FM\koonal committed Jul 18, 2012
  179. changing the parent class of CLICause so it inherits properties that …

    Kyle Allan U-FM\koonal
    Kyle Allan authored and U-FM\koonal committed Jul 13, 2012
    …associate it with a user.
  180. removing super() from constructors

    Kyle Allan U-FM\koonal
    Kyle Allan authored and U-FM\koonal committed Jul 18, 2012
  181. Fixed hudson.util.io.TarArchiverTest failure when user's umask is set…

    Mikhail Kalkov U-FM\koonal
    Mikhail Kalkov authored and U-FM\koonal committed Jul 20, 2012
    … to 007 (new files are rw-rw----). See http://pastebin.com/5HHF9F4W and http://pastebin.com/LL773uCd for failure logs.
  182. updated changelog as a part of the release

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  183. the trunk is toward 1.477-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  184. I think this accidentally crept in and it's not intended.

    kohsuke authored and U-FM\koonal committed Jul 20, 2012
  185. Adding REST API support for adding and removing jobs from ListView in…

    stephenc authored and U-FM\koonal committed Jul 23, 2012
    …stances
  186. Ensure only POST requests are responded to

    stephenc authored and U-FM\koonal committed Jul 23, 2012
  187. Add support for REST based creation/configuration of views

    stephenc authored and U-FM\koonal committed Jul 23, 2012
  188. massaged the change a bit to reduce HTTPness in signatures

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  189. make the variable name represent what it allows

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  190. making this serializable

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  191. added a marker interface to help plugin developers.

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  192. added a place to store stuff without using Action

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  193. typo

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  194. making this more discoverable

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  195. Prevent 404 in .../contextMenu link when there's no context menu

    kohsuke authored and U-FM\koonal committed Jul 4, 2012
  196. Shift the location of the anchor.

    kohsuke authored and U-FM\koonal committed Jul 6, 2012
    This prevents the section title from getting hidden by the breadcrumb
    bar.
  197. refactored the script and CSS into a separate file

    kohsuke authored and U-FM\koonal committed Jul 6, 2012
  198. Update the position when the filter applies.

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  199. now that it's refactored out, it need not be escaped

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  200. these help files were in a wrong location

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  201. these help files were in a wrong location

    kohsuke authored and U-FM\koonal committed Jul 23, 2012
  202. [FIXED JENKINS-10747]

    ndeloof authored and U-FM\koonal committed Jul 24, 2012
    notify user some results have been truncated
    provide link to get more results
  203. Display tools in their own configuration page for clarity.

    jglick authored and U-FM\koonal committed Jul 11, 2012
  204. More conservative UI change: just collapse tool installation sections…

    jglick authored and U-FM\koonal committed Jul 24, 2012
    … by default.
  205. Inlining and customizing advanced.jelly to fix alignment.

    jglick authored and U-FM\koonal committed Jul 24, 2012
  206. Rather than patching configure.jelly, safer and clearer to directly a…

    jglick authored and U-FM\koonal committed Jul 24, 2012
    …djust ToolInstallation/global.jelly.
  207. Display collapse button only when there are already installations.

    jglick authored and U-FM\koonal committed Jul 24, 2012
  208. Always show the section header.

    jglick authored and U-FM\koonal committed Jul 24, 2012
  209. [FIXED JENKINS-14538] Collapse nonempty tool installation sections by…

    jglick authored and U-FM\koonal committed Jul 24, 2012
    … default in /configure.
  210. Unused import.

    jglick authored and U-FM\koonal committed Jul 24, 2012
  211. Reformatted for readability

    stisti authored and U-FM\koonal committed Jul 24, 2012
    Used xmllint --format
  212. Enable su'ing to Jenkins user (necessary for importing certificates i…

    Joris de Vries U-FM\koonal
    Joris de Vries authored and U-FM\koonal committed Jul 24, 2012
    …nto a jenkins-owned keychain)
  213. Create a security session, solving problems with accessing keychains

    Joris de Vries U-FM\koonal
    Joris de Vries authored and U-FM\koonal committed Jul 24, 2012
  214. Make the run as jenkins option selected by default over run as daemon

    Joris de Vries U-FM\koonal
    Joris de Vries authored and U-FM\koonal committed Jul 24, 2012
  215. Enable su'ing to jenkins user also when upgrading

    stisti authored and U-FM\koonal committed Jul 25, 2012
    If the user has an earlier Jenkins installation,
    we should probably change the jenkins user shell
    during the upgrade.
    
    If the user has already changed jenkins user shell
    to something else, we do not touch it.
  216. Fix Windows symlink detection

    andrewstucki authored and U-FM\koonal committed Jul 24, 2012
  217. Don't let a single invalid email address stop us

    dillona authored and U-FM\koonal committed Jul 24, 2012
  218. Don't require apt-get for RPM build.

    kohsuke authored and U-FM\koonal committed Jul 26, 2012
    This is based on #521
  219. Link fix.

    jglick authored and U-FM\koonal committed Jul 26, 2012
  220. Corrected a misleading comment.

    jglick authored and U-FM\koonal committed Jul 26, 2012
  221. When selecting one plugin, find all other of the same type, and make …

    larrys authored and U-FM\koonal committed Jul 27, 2012
    …sure that check box is toggled too.
  222. [FIXED JENKINS-14451] Do not read junitResult.xml many times

    ohtake authored and U-FM\koonal committed Jul 30, 2012
  223. [FIXED JENKINS-14514] 96442cd broke "Add <Something>" buttons for man…

    jglick authored and U-FM\koonal committed Jul 30, 2012
    …y plugins.
    
    Not yet clear to me exactly what went wrong, but debugging shows that the init(...) function
    is called twice: once with legitimate arguments, then again with a bogus 'master' argument.
    Seems to suffice to ignore redundant initializations of the same element.
  224. [FIXED JENKINS-14434] 96442cd broke "Delete" buttons in some cases.

    jglick authored and U-FM\koonal committed Jul 30, 2012
    Seems to be due to hetero-list.jelly importing repeatableDeleteButton.jelly but nothing on the page loads repeatable.js.
    (Presumably worked for /configure just by accident because someone else included repeatable.jelly on the same page.)
  225. [JENKINS-14434] [JENKINS-14514] Noting.

    jglick authored and U-FM\koonal committed Jul 30, 2012
  226. Update transient action after config submit, as trantient action may …

    vjuranek authored and U-FM\koonal committed Jul 10, 2012
    …change due to change of view properties.
  227. More code reuse

    kohsuke authored and U-FM\koonal committed Jul 26, 2012
  228. Made the REST API more discoverable.

    kohsuke authored and U-FM\koonal committed Jul 26, 2012
  229. refactored

    kohsuke authored and U-FM\koonal committed Jul 26, 2012
  230. refactored

    kohsuke authored and U-FM\koonal committed Jul 26, 2012
  231. require POST on destructive operations

    kohsuke authored and U-FM\koonal committed Jul 27, 2012
  232. Exposing more REST API from update center and writing docs

    kohsuke authored and U-FM\koonal committed Jul 27, 2012
  233. addin doc improvements

    kohsuke authored and U-FM\koonal committed Jul 30, 2012
  234. Link fix.

    jglick authored and U-FM\koonal committed Jul 31, 2012
  235. [JENKINS-11739] Cannot compile a plugin with a Plugin subclass in the…

    jglick authored and U-FM\koonal committed Aug 1, 2012
    … same package as a package-info.java.
    
    (Not quite FIXED yet since org.kohsuke.stapler.jsr269 seems to suffer from a similar bug, currently printing ugly warnings.)
  236. set the path to the Java runtime to be used

    ndeloof authored and U-FM\koonal committed Jul 26, 2012
    launching windows managed slave
  237. support variable expansion to define Java path

    ndeloof authored and U-FM\koonal committed Jul 26, 2012
  238. fix typo

    ndeloof authored and U-FM\koonal committed Aug 3, 2012
  239. getExtensionList never returns null

    ndeloof authored and U-FM\koonal committed Aug 3, 2012
  240. [FIXED JENKINS-14495] Hetero lists not working correctly after adding…

    jglick authored and U-FM\koonal committed Aug 3, 2012
    … elements.
    
    Unlike [JENKINS-14514] this is a true fix rather than a workaround (now removed), and is more general.
    cjo9900 discovered that behaviors were being redundantly registered (as of 1.474 the monolithic JS is broken up);
    this caused some behaviors to be run repeatedly on the same elements, breaking reasonable expectations of some behaviors.
    The ideal fix would be to change Behavior.register to be idempotent: for example, key it by selector, then maintain a set of distinct behavior functions for each.
    Unfortunately some adjuncts directly call Behavior.list.unshift, bypassing register(...), which would be tricky to intercept (would need to make a mock of Array).
    The known one cases are in core, but it is possible plugin adjuncts do this too, in which case it would be incompatible to (say) change the Array<Map<String,Behavior>> to a Map<String,Array<Behavior>>.
    Instead, permitting redundant registrations as before, and just silently skipping all but the first at runtime when applying behaviors.
    Beware that since adjuncts are loaded from multiple places, different JS function objects are registered each time, so a naive set of behavior functions does not work;
    have to identify functions by their toString in order to ensure that each is run only once.
    (Currently once _per selector_, conceivably >1x per element; could if necessary be refined to make sure a given behavior is only run once on a given element during one call to applySubtree even if the element matches multiple selectors.)
  241. [JENKINS-14495] Refined fix - needed to pull uniqueness check out of …

    jglick authored and U-FM\koonal committed Aug 3, 2012
    …apply() fn in case we were being passed an Array of nodes.
    
    Fixes test failures introduced by  dbb100d, and adds a test for it now that I know it can be done.
  242. the trunk is toward 1.478-SNAPSHOT

    kohsuke authored and U-FM\koonal committed Aug 6, 2012
  243. Properly documenting null behavior of User-related methods.

    jglick authored and U-FM\koonal committed Aug 7, 2012