I'm not really sure what this code is doing or what ID is supposed to look like. So this is just a minimum-intrusion change to avoid an exception.
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1875)
at hudson.tasks.junit.PackageResult.findCorrespondingResult(PackageResult.java:86)
at hudson.tasks.junit.TestResult.findCorrespondingResult(TestResult.java:295)
at hudson.tasks.test.AbstractTestResultAction.findCorrespondingResult(AbstractTestResultAction.java:183)
at hudson.tasks.test.TestResult.getResultInBuild(TestResult.java:162)
at hudson.tasks.junit.History.getList(History.java:82)
at hudson.tasks.junit.History$1.createDataSet(History.java:105)
at hudson.tasks.junit.History$GraphImpl.createGraph(History.java:169)
at hudson.util.Graph.render(Graph.java:87)
at hudson.util.Graph.doPng(Graph.java:98)
Added logging more liberally, and fixed the problem.
The root cause was that when the mouse enters a hot spot, I wasn't cancelling the previous delayed hide timer.
This fix eliminates the need for the hack in the hide method where I was testing if the mouse was still over the hotspot.
Expanded MockFolder to be a ViewGroup so that it is possible to test views inside folders,
and generally fixed it to service Stapler hierarchies properly so that WebClient-based tests can work.
The reason is that we always determine the job url using
Functions#getRelativeLinkTo, which keeps the view navigation info if it
exists, and can produce an absolute url if required by the context. So
it is no longer needed for the caller to worry about jobBaseUrl.
By default, names are interpreted in relatively to the current item
group, so Label and Computer views no longer need to set useFullName to
true to have correct behaviour.
First of all, /reload should require POST (also prevents XSS DoS attacks).
Adding <l:confirmationLink> to encapsulate a link that requires confirmation upon clicking.
Allowing a ManagementLink to request confirmation (also implying POST); could be used also for e.g. /quietDown.
Enhancing <l:task> to support confirmation as well, and honoring this in context menu items.
This changes introduces a 'recurse' option on ListView that allows to
match using regexp jobs contained inside folders.
The full name of the
job is matched so / can be used as separator.
This allows slice and dice of jobs contained in different folders.