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();
+ }
+
+ }
+}