diff --git a/changelog.html b/changelog.html index 26893c6868..660ede45c6 100644 --- a/changelog.html +++ b/changelog.html @@ -70,6 +70,15 @@ Upcoming changes
  • Performance improvement in master/slave communication throughput (issue 7813) +
  • + Quoted label expression can result into dead executors (throwing exception) + (issue 17128) +
  • + ChangeLog should produce some output even if some (plugin) annotator fails + (issue 17084) +
  • + View name should not allow "..". + (issue 16608) diff --git a/core/src/main/java/hudson/scheduler/CronTab.java b/core/src/main/java/hudson/scheduler/CronTab.java index 52e7d602fe..bc99770a30 100644 --- a/core/src/main/java/hudson/scheduler/CronTab.java +++ b/core/src/main/java/hudson/scheduler/CronTab.java @@ -420,8 +420,7 @@ public final class CronTab { // this rank has a sparse entry. // if we have a sparse rank, one of them better be the left-most. if(i>0) - return "Do you really mean \"every minute\" when you say \""+spec+"\"? "+ - "Perhaps you meant \"0 "+spec.substring(spec.indexOf(' ')+1)+"\""; + return Messages.CronTab_do_you_really_mean_every_minute_when_you(spec, "0 " + spec.substring(spec.indexOf(' ')+1)); // once we find a sparse rank, upper ranks don't matter return null; } diff --git a/core/src/main/java/hudson/scm/ChangeLogSet.java b/core/src/main/java/hudson/scm/ChangeLogSet.java index 5b0f342b35..a16b6130e2 100644 --- a/core/src/main/java/hudson/scm/ChangeLogSet.java +++ b/core/src/main/java/hudson/scm/ChangeLogSet.java @@ -211,7 +211,9 @@ public abstract class ChangeLogSet implements Iter try { a.annotate(parent.build,this,markup); } catch(Exception e) { - LOGGER.fine("ChangeLogAnnotator " + a.toString() + " failed to annotate message '" + getMsg() + "'; " + e.getMessage()); + LOGGER.info("ChangeLogAnnotator " + a.toString() + " failed to annotate message '" + getMsg() + "'; " + e.getMessage()); + } catch(Error e) { + LOGGER.severe("ChangeLogAnnotator " + a.toString() + " failed to annotate message '" + getMsg() + "'; " + e.getMessage()); } return markup.toString(false); diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 31e6c5f333..8d0802736d 100755 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -1570,6 +1570,7 @@ public class Jenkins extends AbstractCIBase implements ModifiableTopLevelItemGro */ public Label getLabel(String expr) { if(expr==null) return null; + expr = hudson.util.QuotedStringTokenizer.unquote(expr); while(true) { Label l = labels.get(expr); if(l!=null) @@ -2921,6 +2922,8 @@ public class Jenkins extends AbstractCIBase implements ModifiableTopLevelItemGro if(name==null || name.length()==0) throw new Failure(Messages.Hudson_NoName()); + if("..".equals(name.trim())) + throw new Failure(Messages.Jenkins_NotAllowedName("..")); for( int i=0; i build, Entry change, MarkupText text ) { + throw new RuntimeException(); + } + + } + + @Extension + public static final class ThrowErrorChangeLogAnnotator extends ChangeLogAnnotator { + + @Override + public void annotate(AbstractBuild build, Entry change, MarkupText text ) { + throw new Error(); + } + + } +}