Skip to content
Permalink
Browse files

[FIXED JENKINS-23945] Test result trend graph should not load builds …

…which were not already loaded.
  • Loading branch information
jglick committed Aug 7, 2014
1 parent 479dfb4 commit 0449883d152a772deea8621ce2e2c3e97e7e8a1f
Showing with 9 additions and 4 deletions.
  1. +3 −0 changelog.html
  2. +6 −4 core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java
@@ -70,6 +70,9 @@
<li class="bug">
Startup can be broken by deeply recursive causes in build records.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-24161">issue 24161</a>)
<li class="bug">
Displaying unabridged test result trend on project index page defeated lazy loading.
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-23945">issue 23945</a>)
<li class="rfe">
Added support for host:port format in X-Forwarded-Host header.
(<a href="https://github.com/jenkinsci/jenkins/commit/19d8b80bb2f33e4877c7170bcca8bfa318ebe77d">commit 19d8b80</a>)
@@ -34,6 +34,7 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import jenkins.model.RunAction2;
import org.jfree.chart.ChartFactory;
@@ -187,13 +188,14 @@ public Api getApi() {
* Gets the test result of the previous build, if it's recorded, or null.
*/
public T getPreviousResult() {
return (T)getPreviousResult(getClass());
return (T)getPreviousResult(getClass(), true);
}

private <U extends AbstractTestResultAction> U getPreviousResult(Class<U> type) {
private <U extends AbstractTestResultAction> U getPreviousResult(Class<U> type, boolean eager) {
Set<Integer> loadedBuilds = eager ? null : owner.getProject()._getRuns().getLoadedBuilds().keySet();
AbstractBuild<?,?> b = owner;
while(true) {
b = b.getPreviousBuild();
b = eager || loadedBuilds.contains(b.number - /* assuming there are no gaps */1) ? b.getPreviousBuild() : null;
if(b==null)
return null;
U r = b.getAction(type);
@@ -276,7 +278,7 @@ private CategoryDataset buildDataSet(StaplerRequest req) {

DataSetBuilder<String,NumberOnlyBuildLabel> dsb = new DataSetBuilder<String,NumberOnlyBuildLabel>();

for( AbstractTestResultAction<?> a=this; a!=null; a=a.getPreviousResult(AbstractTestResultAction.class) ) {
for (AbstractTestResultAction<?> a = this; a != null; a = a.getPreviousResult(AbstractTestResultAction.class, false)) {
dsb.add( a.getFailCount(), "failed", new NumberOnlyBuildLabel(a.owner));
if(!failureOnly) {
dsb.add( a.getSkipCount(), "skipped", new NumberOnlyBuildLabel(a.owner));

0 comments on commit 0449883

Please sign in to comment.
You can’t perform that action at this time.