You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/02/08 05:15:25 UTC

[groovy] 03/03: remove Xlint warnings

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 <pa...@asert.com.au>
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.");