This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch GROOVY_3_0_X in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 047cd800d255bb4674f466bf683d7b3961fa779c Author: Paul King <[email protected]> AuthorDate: Sun Mar 15 15:39:24 2020 +1000 remove spotbugs warnings --- .../tools/groovydoc/ArrayClassDocWrapper.java | 6 ++++++ .../groovy/tools/groovydoc/FileOutputTool.java | 24 +++++++++++++++++++--- .../tools/groovydoc/GroovyRootDocBuilder.java | 3 ++- .../groovydoc/SimpleGroovyClassDocAssembler.java | 1 + .../groovy/tools/groovydoc/SimpleGroovyDoc.java | 3 ++- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/ArrayClassDocWrapper.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/ArrayClassDocWrapper.java index 16a190a..74d16a5 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/ArrayClassDocWrapper.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/ArrayClassDocWrapper.java @@ -294,4 +294,10 @@ public class ArrayClassDocWrapper implements GroovyClassDoc { public boolean equals(Object obj) { return obj instanceof ArrayClassDocWrapper ? delegate.equals(((ArrayClassDocWrapper) obj).delegate) : delegate.equals(obj); } + + @Override + public int hashCode() { + assert false : "hashCode not designed"; + return 42; // any arbitrary constant will do + } } diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/FileOutputTool.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/FileOutputTool.java index 93da202..2a9f515 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/FileOutputTool.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/FileOutputTool.java @@ -21,16 +21,34 @@ package org.codehaus.groovy.tools.groovydoc; import org.codehaus.groovy.runtime.ResourceGroovyMethods; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; public class FileOutputTool implements OutputTool { public void makeOutputArea(String filename) { - File dir = new File(filename); - dir.mkdirs(); + Path path = Paths.get(filename); + if (Files.exists(path)) { + return; + } + try { + Files.createDirectories(path); + } catch (IOException e) { + System.err.println("Unable to create directory '" + filename + "' due to '" + e.getMessage() + "'; attempting to continue..."); + } } public void writeToOutput(String fileName, String text, String charset) throws Exception { File file = new File(fileName); - file.getParentFile().mkdirs(); + Path path = file.getParentFile().toPath(); + if (!Files.exists(path)) { + try { + Files.createDirectories(path); + } catch (IOException e) { + System.err.println("Unable to create parent directory '" + path + "' due to '" + e.getMessage() + "'; attempting to continue..."); + } + } ResourceGroovyMethods.write(file, text, charset, true); } } diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilder.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilder.java index b739dae..832ae6c 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilder.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/GroovyRootDocBuilder.java @@ -27,6 +27,7 @@ import org.codehaus.groovy.tools.shell.util.Logger; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Locale; @@ -56,7 +57,7 @@ public class GroovyRootDocBuilder { } public GroovyRootDocBuilder(String[] sourcepaths, List<LinkArgument> links, Properties properties) { - this.sourcepaths = sourcepaths; + this.sourcepaths = Arrays.copyOf(sourcepaths, sourcepaths.length); this.links = links; this.rootDoc = new SimpleGroovyRootDoc("root"); this.properties = properties; diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java index 976d0b2..1147a5a 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java @@ -656,6 +656,7 @@ public class SimpleGroovyClassDocAssembler extends VisitorAdapter implements Gro case ABSTRACT: memberOrClass.setAbstract(true); break; + default: } currentModifier = currentModifier.getNextSibling(); } 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 502bf17..8dffef1 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 @@ -23,6 +23,7 @@ import org.codehaus.groovy.groovydoc.GroovyTag; import java.text.BreakIterator; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; @@ -245,7 +246,7 @@ public class SimpleGroovyDoc implements GroovyDoc/*, GroovyTokenTypes*/ { // public GroovySeeTag[] seeTags() {/*todo*/return null;} public GroovyTag[] tags() { - return tags; + return Arrays.copyOf(tags, tags.length); } // public GroovyTag[] tags(String arg0) {/*todo*/return null;}
