From 8f5da09d3e078ca8857f033ed440052d26e3e2a7 Mon Sep 17 00:00:00 2001 From: "felix.wang" <59079269+felix-thinkingdata@users.noreply.github.com> Date: Tue, 24 Nov 2020 18:32:50 +0800 Subject: [PATCH] fix replaceNRTtoUnderline NullPointerException #4098 (#4100) * fix replaceNRTtoUnderline NullPointerException * add unit Test --- .../common/utils/StringUtils.java | 6 +++++- .../common/utils/StringUtilsTest.java | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/StringUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/StringUtils.java index 4f4f12766b..bedfa85f57 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/StringUtils.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/StringUtils.java @@ -45,6 +45,10 @@ public class StringUtils { } public static String replaceNRTtoUnderline(String src) { - return src.replaceAll("[\n|\r|\t]", "_"); + if (isBlank(src)) { + return src; + } else { + return src.replaceAll("[\n|\r|\t]", "_"); + } } } diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/StringUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/StringUtilsTest.java index eca22def30..f67e89e7e2 100644 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/StringUtilsTest.java +++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/StringUtilsTest.java @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.apache.dolphinscheduler.common.utils; import org.junit.Assert; @@ -61,4 +62,19 @@ public class StringUtilsTest { b = StringUtils.isNotBlank("test"); Assert.assertTrue(b); } + + @Test + public void testreplaceNRTtoUnderline() { + String result1 = StringUtils.replaceNRTtoUnderline("abc\n"); + Assert.assertEquals("abc_", result1); + + String result2 = StringUtils.replaceNRTtoUnderline("abc\r"); + Assert.assertEquals("abc_", result2); + + String result3 = StringUtils.replaceNRTtoUnderline("abc\t"); + Assert.assertEquals("abc_", result3); + + String result4 = StringUtils.replaceNRTtoUnderline(null); + Assert.assertNull(result4); + } }