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 b076a3693ba7f4b249d6d0b8ac8407c3055dfa88 Author: Paul King <[email protected]> AuthorDate: Sat Feb 8 15:15:10 2020 +1000 remove Xlint warnings --- .../src/main/java/groovy/servlet/GroovyServlet.java | 3 +-- .../src/main/java/groovy/servlet/ServletBinding.java | 8 +++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java index ea0ac9a..7ce2f7a 100644 --- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java +++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/GroovyServlet.java @@ -110,8 +110,7 @@ public class GroovyServlet extends AbstractHttpServlet { // Run the script try { - Closure closure = new Closure(gse) { - + Closure<?> closure = new Closure<Object>(gse) { public Object call() { try { return ((GroovyScriptEngine) getDelegate()).run(scriptUri, binding); diff --git a/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java b/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java index b626969..3660460 100644 --- a/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java +++ b/subprojects/groovy-servlet/src/main/java/groovy/servlet/ServletBinding.java @@ -303,8 +303,9 @@ public class ServletBinding extends Binding { super.setVariable("html", builder); try { + // load using reflection to avoid needing a hard requirement on groovy-json for those not needing JSON support Class jsonBuilderClass = this.getClass().getClassLoader().loadClass("groovy.json.StreamingJsonBuilder"); - Constructor writerConstructor = jsonBuilderClass.getConstructor(Writer.class); + Constructor writerConstructor = getWriterConstructor(jsonBuilderClass); super.setVariable("json", writerConstructor.newInstance(output.getWriter())); } catch (Throwable t) { t.printStackTrace(); @@ -323,6 +324,11 @@ public class ServletBinding extends Binding { super.setVariable("redirect", c); } + @SuppressWarnings("unchecked") + private Constructor getWriterConstructor(Class jsonBuilderClass) throws NoSuchMethodException { + return jsonBuilderClass.getConstructor(Writer.class); + } + private static void validateArgs(String name, String message) { if (name == null) { throw new IllegalArgumentException(message + " null key.");
