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.");