This is an automated email from the ASF dual-hosted git repository. ddekany pushed a commit to branch 2.3-gae in repository https://gitbox.apache.org/repos/asf/freemarker.git
commit ce5d8697e682f57a476eaff163b3b3b486898f16 Author: ddekany <[email protected]> AuthorDate: Fri Nov 1 10:52:00 2024 +0100 Minor cleanups related to ?trimToNull/?emptyToNull/?blankToNull --- .../main/java/freemarker/core/BuiltInsForExistenceHandling.java | 2 +- .../src/main/java/freemarker/template/utility/StringUtil.java | 5 +++++ .../src/test/java/freemarker/core/StringBuiltInTest.java | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/freemarker-core/src/main/java/freemarker/core/BuiltInsForExistenceHandling.java b/freemarker-core/src/main/java/freemarker/core/BuiltInsForExistenceHandling.java index 483b6ed5..f226b98f 100644 --- a/freemarker-core/src/main/java/freemarker/core/BuiltInsForExistenceHandling.java +++ b/freemarker-core/src/main/java/freemarker/core/BuiltInsForExistenceHandling.java @@ -140,7 +140,7 @@ class BuiltInsForExistenceHandling { private static boolean isBlank(String s) { if (s == null) { - return false; + return true; } int len = s.length(); diff --git a/freemarker-core/src/main/java/freemarker/template/utility/StringUtil.java b/freemarker-core/src/main/java/freemarker/template/utility/StringUtil.java index f4f145f1..c4664d48 100644 --- a/freemarker-core/src/main/java/freemarker/template/utility/StringUtil.java +++ b/freemarker-core/src/main/java/freemarker/template/utility/StringUtil.java @@ -2084,6 +2084,11 @@ public class StringUtil { return true; } + /** + * Like {@link Character#isWhitespace(char)}, but also considers non-breaking whitespace characters as whitespace. + * + * @since 2.3.34 + */ public static boolean isWhitespaceOrNonBreakingWhitespace(char c) { if (Character.isWhitespace(c)) { return true; diff --git a/freemarker-core/src/test/java/freemarker/core/StringBuiltInTest.java b/freemarker-core/src/test/java/freemarker/core/StringBuiltInTest.java index 7c09bc1d..b8aa0038 100644 --- a/freemarker-core/src/test/java/freemarker/core/StringBuiltInTest.java +++ b/freemarker-core/src/test/java/freemarker/core/StringBuiltInTest.java @@ -60,6 +60,9 @@ public class StringBuiltInTest extends TemplateTest { // No consistent with ?trim (and String.trim()), as all UNICODE whitespace count as whitespace: assertOutput("${' \u2003 '?blank_to_null!'-'}", "-"); assertOutput("${' \u00A0 '?blank_to_null!'-'}", "-"); // Even if it's non-breaking whitespace + + // Camel case: + assertOutput("${nonExisting?blankToNull!'-'}", "-"); } @Test @@ -89,6 +92,9 @@ public class StringBuiltInTest extends TemplateTest { // To be consistent with ?trim (and String.trim()), only char <= 32 is whitespace, not all UNICODE whitespace: assertOutput("${' \u2003 '?trim_to_null!'-'}", "\u2003"); + + // Camel case: + assertOutput("${nonExisting?trimToNull!'-'}", "-"); } @Test @@ -115,6 +121,9 @@ public class StringBuiltInTest extends TemplateTest { assertOutput("${(nonExisting + '.')?empty_to_null!'-'}", "-"); assertOutput("${1234?empty_to_null!'-'}", "1,234"); + + // Camel case: + assertOutput("${nonExisting?emptyToNull!'-'}", "-"); } @Test
