This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 923dd631ca53d9c1a090a55e444fca3bc91722b4 Author: Paul King <[email protected]> AuthorDate: Thu Oct 1 22:49:55 2020 +1000 avoid String.split(String) has surprising behavior --- .../groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java | 2 +- .../org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java | 4 ++-- .../java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyDoc.java | 2 +- .../main/java/org/apache/groovy/swing/binding/PropertyBinding.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java index a2ddd34..64dc16f 100644 --- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java +++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java @@ -1413,7 +1413,7 @@ public class Groovyc extends MatchingTask { ClassLoader loader = getClass().getClassLoader(); if (loader instanceof AntClassLoader) { AntClassLoader antLoader = (AntClassLoader) loader; - String[] pathElm = antLoader.getClasspath().split(File.pathSeparator); + String[] pathElm = antLoader.getClasspath().split(File.pathSeparator, -1); List<String> classpath = configuration.getClasspath(); /* * Iterate over the classpath provided to groovyc, and add any missing path diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java index 453eb85..0011bbe 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDoc.java @@ -518,7 +518,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp } if (!type.contains(".") && classDoc != null) { - String[] pieces = type.split("#"); + String[] pieces = type.split("#", -1); String candidate = pieces[0]; Class c = classDoc.resolveExternalClassFromImport(candidate); if (c != null) type = c.getName(); @@ -528,7 +528,7 @@ public class SimpleGroovyClassDoc extends SimpleGroovyAbstractableElementDoc imp final String[] target = type.split("#"); String shortClassName = target[0].replaceAll(".*\\.", ""); - shortClassName += (target.length > 1 ? "#" + target[1].split("\\(")[0] : ""); + shortClassName += (target.length > 1 ? "#" + target[1].split("\\(", -1)[0] : ""); String name = (full ? target[0] : shortClassName).replace('#', '.').replace('$', '.'); // last chance lookup for classes within the current codebase diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyDoc.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyDoc.java index c212c8d..0b9e110 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyDoc.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyDoc.java @@ -100,7 +100,7 @@ public class SimpleGroovyDoc implements GroovyDoc/*, GroovyTokenTypes*/ { String trimmed = RAW_COMMENT_PATTERN.matcher(rawCommentText).replaceFirst("@"); if (trimmed.equals(rawCommentText)) return; String cleaned = TRIMMED_COMMENT_PATTERN.matcher(trimmed).replaceAll("$1").trim(); - String[] split = cleaned.split("(?m)^@"); + String[] split = cleaned.split("(?m)^@", -1); List<GroovyTag> result = new ArrayList<GroovyTag>(); for (String s : split) { String tagname = null; diff --git a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java index 0547356..cb3a023 100644 --- a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java +++ b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java @@ -71,7 +71,7 @@ public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBin for (String line : lines) { line = line.trim(); if (line.startsWith("#")) return; - String[] parts = line.split("="); + String[] parts = line.split("=", -1); if (parts.length == 2) { try { ACCESSORS.put(cl.loadClass(parts[0].trim()), getaAccessorClass(cl, parts[1]));
