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 2022/04/14 03:18:01 UTC
[groovy] 05/09: remove deprecation warnings warning
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit dc63ea353104b8f626e77479340966099326a40e
Author: Paul King <pa...@asert.com.au>
AuthorDate: Wed Apr 13 23:09:40 2022 +1000
remove deprecation warnings warning
---
src/main/java/groovy/lang/GroovyShell.java | 4 ++--
src/main/java/groovy/util/FactoryBuilderSupport.java | 7 ++++++-
src/main/java/groovy/util/ObjectGraphBuilder.java | 8 +++++++-
src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java | 8 ++++----
4 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/src/main/java/groovy/lang/GroovyShell.java b/src/main/java/groovy/lang/GroovyShell.java
index 2efc40ce92..57fa108c60 100644
--- a/src/main/java/groovy/lang/GroovyShell.java
+++ b/src/main/java/groovy/lang/GroovyShell.java
@@ -257,8 +257,8 @@ public class GroovyShell extends GroovyObjectSupport {
try {
Script script = InvokerHelper.newScript(scriptClass, context);
return script.run();
- } catch (InstantiationException | InvocationTargetException | IllegalAccessException e) {
- // ignore instantiation errors,, try to do main
+ } catch (InstantiationException | InvocationTargetException | IllegalAccessException | NoSuchMethodException e) {
+ // ignore instantiation errors, try to do main
}
}
try {
diff --git a/src/main/java/groovy/util/FactoryBuilderSupport.java b/src/main/java/groovy/util/FactoryBuilderSupport.java
index 2c6ad9c7a9..82764bf4ba 100644
--- a/src/main/java/groovy/util/FactoryBuilderSupport.java
+++ b/src/main/java/groovy/util/FactoryBuilderSupport.java
@@ -22,6 +22,7 @@ import groovy.lang.Binding;
import groovy.lang.Closure;
import groovy.lang.DelegatingMetaClass;
import groovy.lang.GroovyClassLoader;
+import groovy.lang.GroovyRuntimeException;
import groovy.lang.MetaClass;
import groovy.lang.MissingMethodException;
import groovy.lang.MissingPropertyException;
@@ -659,7 +660,11 @@ public abstract class FactoryBuilderSupport extends Binding {
if (checkValueIsTypeNotString(value, name, beanClass)) {
return value;
} else {
- return beanClass.newInstance();
+ try {
+ return beanClass.getDeclaredConstructor().newInstance();
+ } catch (NoSuchMethodException | InvocationTargetException e) {
+ throw new GroovyRuntimeException("Failed to register bean factory", e);
+ }
}
}
});
diff --git a/src/main/java/groovy/util/ObjectGraphBuilder.java b/src/main/java/groovy/util/ObjectGraphBuilder.java
index 7cab1c75fe..2e82132265 100644
--- a/src/main/java/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/java/groovy/util/ObjectGraphBuilder.java
@@ -20,10 +20,12 @@ package groovy.util;
import groovy.lang.Closure;
import groovy.lang.GString;
+import groovy.lang.GroovyRuntimeException;
import groovy.lang.MetaProperty;
import groovy.lang.MissingPropertyException;
import org.codehaus.groovy.runtime.InvokerHelper;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
@@ -452,7 +454,11 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
@Override
public Object newInstance(Class klass, Map attributes) throws InstantiationException,
IllegalAccessException {
- return klass.newInstance();
+ try {
+ return klass.getDeclaredConstructor().newInstance();
+ } catch (InvocationTargetException | NoSuchMethodException e) {
+ throw new GroovyRuntimeException("Unable to create instance resolver", e);
+ }
}
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index 42c760be89..66926668b3 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -470,14 +470,14 @@ public class InvokerHelper {
return script;
}
- public static Script newScript(Class<?> scriptClass, Binding context) throws InstantiationException, IllegalAccessException, InvocationTargetException {
+ public static Script newScript(Class<? extends Script> scriptClass, Binding context) throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
Script script;
try {
- Constructor constructor = scriptClass.getConstructor(Binding.class);
- script = (Script) constructor.newInstance(context);
+ Constructor<? extends Script> constructor = scriptClass.getConstructor(Binding.class);
+ script = constructor.newInstance(context);
} catch (NoSuchMethodException e) {
// Fallback for non-standard "Script" classes.
- script = (Script) scriptClass.newInstance();
+ script = scriptClass.getDeclaredConstructor().newInstance();
script.setBinding(context);
}
return script;