Index: core/src/main/java/hudson/model/AbstractItem.java =================================================================== --- core/src/main/java/hudson/model/AbstractItem.java (revision 21263) +++ core/src/main/java/hudson/model/AbstractItem.java (working copy) @@ -166,7 +166,7 @@ } public String getShortUrl() { - return getParent().getUrlChildPrefix()+'/'+getName()+'/'; + return getParent().getUrlChildPrefix()+'/'+Util.rawEncode(getName())+'/'; } public String getSearchUrl() { Index: core/src/main/java/hudson/matrix/MatrixProject.java =================================================================== --- core/src/main/java/hudson/matrix/MatrixProject.java (revision 21263) +++ core/src/main/java/hudson/matrix/MatrixProject.java (working copy) @@ -81,6 +81,7 @@ import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.TokenList; import org.kohsuke.stapler.HttpResponse; /** @@ -326,7 +327,7 @@ for (File v : valuesDir) { Map c = new HashMap(combination); - c.put(axis,v.getName()); + c.put(axis,TokenList.decode(v.getName())); try { XmlFile config = Items.getConfigFile(v); @@ -443,7 +444,7 @@ public File getRootDirFor(Combination combination) { File f = getConfigurationsDir(); for (Entry e : combination.entrySet()) - f = new File(f,"axis-"+e.getKey()+'/'+e.getValue()); + f = new File(f,"axis-"+e.getKey()+'/'+Util.rawEncode(e.getValue())); f.getParentFile().mkdirs(); return f; } Index: core/src/main/java/hudson/matrix/MatrixBuild.java =================================================================== --- core/src/main/java/hudson/matrix/MatrixBuild.java (revision 21263) +++ core/src/main/java/hudson/matrix/MatrixBuild.java (working copy) @@ -82,7 +82,15 @@ public final class RunPtr { public final Combination combination; private RunPtr(Combination c) { this.combination=c; } - public MatrixRun getRun() { return MatrixBuild.this.getRun(combination); } + + public MatrixRun getRun() { + return MatrixBuild.this.getRun(combination); + } + + public String getShortUrl() { + return Util.rawEncode(combination.toString()); + } + public String getTooltip() { MatrixRun r = getRun(); if(r!=null) return r.getIconColor().getDescription(); Index: core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly =================================================================== --- core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly (revision 21263) +++ core/src/main/resources/hudson/matrix/MatrixBuild/ajaxMatrix.jelly (working copy) @@ -34,7 +34,7 @@ ${%Not run} - + ${p.tooltip} ${p.combination.toString(o.z)}