From 3f2958795c18cfffe59eb4eea46bee4d7cb170ca Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 30 Apr 2014 18:19:17 -0400 Subject: [PATCH] =?UTF-8?q?${h.breakableString(=E2=80=A6)}=20might=20be=20?= =?UTF-8?q?called=20with=20a=20null=20argument=20if=20something=20is=20bro?= =?UTF-8?q?ken.=20For=20robustness,=20pass=20on=20the=20null=20to=20Jelly?= =?UTF-8?q?=20rather=20than=20failing=20page=20rendering.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/main/java/hudson/Functions.java | 4 +++- core/src/test/java/hudson/FunctionsTest.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index c60e1140e5..bbe1de2ddf 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -1828,7 +1828,9 @@ public class Functions { * @since 1.517 */ public static String breakableString(final String plain) { - + if (plain == null) { + return null; + } return plain.replaceAll("([\\p{Punct}&&[^;]]+\\w)", "$1") .replaceAll("([^\\p{Punct}\\s-]{20})(?=[^\\p{Punct}\\s-]{10})", "$1") ; diff --git a/core/src/test/java/hudson/FunctionsTest.java b/core/src/test/java/hudson/FunctionsTest.java index f0e5213900..7bad097807 100644 --- a/core/src/test/java/hudson/FunctionsTest.java +++ b/core/src/test/java/hudson/FunctionsTest.java @@ -36,7 +36,7 @@ import java.util.Locale; import java.util.logging.Level; import java.util.logging.LogRecord; import jenkins.model.Jenkins; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -322,6 +322,7 @@ public class FunctionsTest { assertBrokenAs("<<a<bc<def<ghi<", "", "<", "<a", "<bc", "<def", "<ghi", "<"); assertBrokenAs("H,e.l/l:o=w_o+|d", "H", ",e", ".l", "/l", ":o", "=w", "_o", "+|d"); assertBrokenAs("a¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷ", "a¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷa¶‱ﻷ", "a¶‱ﻷa¶‱ﻷa¶‱ﻷ"); + assertNull(Functions.breakableString(null)); } private void assertBrokenAs(String plain, String... chunks) {