You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Radoslav Ivanov (Jira)" <ji...@apache.org> on 2020/09/02 03:37:00 UTC
[jira] [Commented] (GROOVY-9707) TypeChecked: NoSuchMethodError:
DefaultGroovyMethods.plus(java.lang.String, java.lang.Object)
[ https://issues.apache.org/jira/browse/GROOVY-9707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17188953#comment-17188953 ]
Radoslav Ivanov commented on GROOVY-9707:
-----------------------------------------
Please find an example, which is reproducing the problem, and let me know what is wrong:
{code:java}
import groovy.lang.GroovyClassLoader;
import groovy.transform.CompileStatic;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer;
import java.util.Arrays;
public class NoSuchMethod {
public static void main(String[] args) throws Exception {
String script = "@groovy.transform.TypeChecked\n" +
"class NoSuchMethodTest {\n" +
" void invoke() {\n" +
" \" a \" + \" b \"\n" +
" }\n" +
"}";
CompilerConfiguration confiuration = new CompilerConfiguration();
confiuration.addCompilationCustomizers(new ASTTransformationCustomizer(CompileStatic.class));
GroovyClassLoader groovyClassLoader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader(), confiuration);
Class scriptClass = groovyClassLoader.parseClass(script);
Object scriptObject = scriptClass.getConstructor().newInstance();
Arrays.stream(scriptClass.getMethods())
.filter(m -> "invoke".equals(m.getName()))
.findFirst()
.get()
.invoke(scriptObject, null);
}
}
{code}
> TypeChecked: NoSuchMethodError: DefaultGroovyMethods.plus(java.lang.String, java.lang.Object)
> ---------------------------------------------------------------------------------------------
>
> Key: GROOVY-9707
> URL: https://issues.apache.org/jira/browse/GROOVY-9707
> Project: Groovy
> Issue Type: Bug
> Components: groovy-runtime
> Affects Versions: 3.0.5
> Reporter: Radoslav Ivanov
> Priority: Major
>
> Looking for advice around resolving a problem after upgrading Groovy from 2.5.9 to 3.0.5.
> Most of the @TypeChecked scripts start hitting NoSuchMethodError when concatenating two strings ("a" + "b"), which is resolved if @TypeChecked is removed... The removed method's deprecation java doc (in 2.4.7) says to "Use the CharSequence version"...
> {code:java}
> java.lang.NoSuchMethodError: 'java.lang.String org.codehaus.groovy.runtime.DefaultGroovyMethods.plus(java.lang.String, java.lang.Object){code}
> May be I am missing something.. any advice will be appreciated...
--
This message was sent by Atlassian Jira
(v8.3.4#803005)