~ubuntu-branches/ubuntu/trusty/jenkins/trusty

« back to all changes in this revision

Viewing changes to core/src/main/java/hudson/tasks/junit/PackageResult.java

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-08-13 12:35:19 UTC
  • mfrom: (1.1.13)
  • Revision ID: package-import@ubuntu.com-20130813123519-tizgfxcr70trl7r0
Tags: 1.509.2+dfsg-1
* New upstream release (Closes: #706725):
  - d/control: Update versioned BD's:
    * jenkins-executable-war >= 1.28.
    * jenkins-instance-identity >= 1.3.
    * libjenkins-remoting-java >= 2.23.
    * libjenkins-winstone-java >= 0.9.10-jenkins-44.
    * libstapler-java >= 1.207.
    * libjenkins-json-java >= 2.4-jenkins-1.
    * libstapler-adjunct-timeline-java >= 1.4.
    * libstapler-adjunct-codemirror-java >= 1.2.
    * libmaven-hpi-plugin-java >= 1.93.
    * libjenkins-xstream-java >= 1.4.4-jenkins-3.
  - d/maven.rules: Map to older version of animal-sniffer-maven-plugin.
  - Add patch for compatibility with guava >= 0.14.
  - Add patch to exclude asm4 dependency via jnr-posix.
  - Fixes the following security vulnerabilities:
    CVE-2013-2034, CVE-2013-2033, CVE-2013-2034, CVE-2013-1808
* d/patches/*: Switch to using git patch-queue for managing patches.
* De-duplicate jars between libjenkins-java and jenkins-external-job-monitor
  (Closes: #701163):
  - d/control: Add dependency between jenkins-external-job-monitor ->
    libjenkins-java.
  - d/rules: 
    Drop installation of jenkins-core in jenkins-external-job-monitor.
  - d/jenkins-external-job-monitor.{links,install}: Link to jenkins-core
    in /usr/share/java instead of included version.
* Wait longer for jenkins to stop during restarts (Closes: #704848):
  - d/jenkins.init: Re-sync init script from upstream codebase.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
public final class PackageResult extends MetaTabulatedResult implements Comparable<PackageResult> {
41
41
 
42
42
    private final String packageName;
 
43
    private transient String safeName;
43
44
    /**
44
45
     * All {@link ClassResult}s keyed by their short name.
45
46
     */
68
69
    }
69
70
 
70
71
    @Override
71
 
    public String getSafeName() {
 
72
    public synchronized String getSafeName() {
 
73
        if (safeName != null) {
 
74
            return safeName;
 
75
        }
72
76
        Collection<PackageResult> siblings = (parent == null ? Collections.EMPTY_LIST : parent.getChildren());
73
 
        return uniquifyName(
 
77
        return safeName = uniquifyName(
74
78
                siblings,
75
79
                safe(getName()));
76
80
    }
78
82
    @Override
79
83
    public TestResult findCorrespondingResult(String id) {
80
84
        String myID = safe(getName());
 
85
 
81
86
        int base = id.indexOf(myID);
82
 
        String className;
83
 
        String subId = null;
 
87
        String className = id; // fall back value
84
88
        if (base > 0) {
85
89
            int classNameStart = base + myID.length() + 1;
86
 
            className = id.substring(classNameStart);
87
 
        } else {
88
 
            className = id;
89
 
    }
 
90
            if (classNameStart<id.length())
 
91
                className = id.substring(classNameStart);
 
92
        }
 
93
 
 
94
        String subId = null;
90
95
        int classNameEnd = className.indexOf('/');
91
96
        if (classNameEnd > 0) {
92
97
            subId = className.substring(classNameEnd + 1);
102
107
                return child.findCorrespondingResult(subId);
103
108
            } else {
104
109
                return child;
105
 
    }
 
110
            }
106
111
        }
107
112
 
108
113
        return null;