Browse Source

fix replaceNRTtoUnderline NullPointerException #4098 (#4100)

* fix replaceNRTtoUnderline NullPointerException

* add  unit Test
felix.wang 4 năm trước cách đây
mục cha
commit
8f5da09d3e

+ 5 - 1
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]", "_");
+        }
     }
 }

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