[jira] [Updated] (GROOVY-9250) NoClassDefFoundError when parsing script
[ https://issues.apache.org/jira/browse/GROOVY-9250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Radoslav Ivanov updated GROOVY-9250: Description: We are trying to jump from 2.4.15 to 2.5.8 Groovy Runtime but we get that error now when calling GroovyClassLoader::parseClass(script). Any help would be appreciated. {code:java} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during instruction selection: java.lang.NoClassDefFoundError: com.some.clazz java.lang.RuntimeException: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1107) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:634) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:612) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:589) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:320) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:262) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:272) Caused by: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createFieldNode(MemberSignatureParser.java:158) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:205) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredConstructors(DecompiledClassNode.java:108) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassNode.getDeclaredConstructors(ClassNode.java:484) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:4425) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodOrFail(StaticTypeCheckingVisitor.java:4279) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.findMethodOrFail(StaticCompilationVisitor.java:457) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorCallExpression(StaticTypeCheckingVisitor.java:2202) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitConstructorCallExpression(StaticCompilationVisitor.java:413) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:43) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:822) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitDeclarationExpression(CodeVisitorSupport.java:296) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitDeclarationExpression(ClassCodeVisitorSupport.java:116) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:89) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:120) at
[jira] [Resolved] (GROOVY-9236) Avoid unnecessary resolving
[ https://issues.apache.org/jira/browse/GROOVY-9236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniel Sun resolved GROOVY-9236. Resolution: Fixed Fixed by https://github.com/apache/groovy/commit/fbc442da25335ebcb8f61623cd4a89f551c86331 > Avoid unnecessary resolving > --- > > Key: GROOVY-9236 > URL: https://issues.apache.org/jira/browse/GROOVY-9236 > Project: Groovy > Issue Type: Improvement >Reporter: Daniel Sun >Assignee: Daniel Sun >Priority: Major > Fix For: 3.0.0-beta-4 > > Time Spent: 4h 20m > Remaining Estimate: 0h > > {{ResolveVisitor}}'s {{resolveFromStaticInnerClasses}}, > {{resolveFromDefaultImports}} and {{resolveNestedClass}} will try to guess > class qualified name and load. In the process of resolving, lots of time > wasted on finding non-existing classes. So we should try to resolve classes > in a determined manner. > For example, > For {{java.util.stream.Collectors}}, ① {{resolveFromStaticInnerClasses}} > will try to guess {{java.util.stream$Collectors}}, > {{java.util$stream$Collectors}}, {{java$util$stream$Collectors}}. > And ② {{resolveFromDefaultImports}} will guess > {{java.lang.java$util$stream$Collectors}}, > {{java.util.java$util$stream$Collectors}}, ..., > {{groovy.lang.java$util$stream$Collectors}}. > After the precedence of resolving adjusted, the above unnecessary resolving > can be avoided. > See the discussion in the dev mailing list: > http://groovy.329449.n5.nabble.com/Performance-of-the-compiler-tt5750989.html > and its attachment: > http://groovy.329449.n5.nabble.com/attachment/5750989/0/CPU-hot-spots.txt -- This message was sent by Atlassian Jira (v8.3.2#803003)
[GitHub] [groovy] danielsun1106 merged pull request #998: GROOVY-9236: Avoid unnecessary resolving
danielsun1106 merged pull request #998: GROOVY-9236: Avoid unnecessary resolving URL: https://github.com/apache/groovy/pull/998 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] [groovy] danielsun1106 commented on issue #998: GROOVY-9236: Avoid unnecessary resolving
danielsun1106 commented on issue #998: GROOVY-9236: Avoid unnecessary resolving URL: https://github.com/apache/groovy/pull/998#issuecomment-530220095 > We can revert/tweak later if we really need to. I think so too :-) This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[jira] [Updated] (GROOVY-9250) NoClassDefFoundError when parsing script
[ https://issues.apache.org/jira/browse/GROOVY-9250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Radoslav Ivanov updated GROOVY-9250: Description: We are trying to jump from 2.4.15 to 2.5.8 Groovy Runtime but we get that error now when calling parseScript on the GroovyClassLoader. Any help would be appreciated. {code:java} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during instruction selection: java.lang.NoClassDefFoundError: com.some.clazz java.lang.RuntimeException: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1107) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:634) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:612) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:589) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:320) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:262) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:272) Caused by: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createFieldNode(MemberSignatureParser.java:158) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:205) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredConstructors(DecompiledClassNode.java:108) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassNode.getDeclaredConstructors(ClassNode.java:484) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:4425) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodOrFail(StaticTypeCheckingVisitor.java:4279) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.findMethodOrFail(StaticCompilationVisitor.java:457) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorCallExpression(StaticTypeCheckingVisitor.java:2202) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitConstructorCallExpression(StaticCompilationVisitor.java:413) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:43) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:822) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitDeclarationExpression(CodeVisitorSupport.java:296) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitDeclarationExpression(ClassCodeVisitorSupport.java:116) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:89) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:120) at
[jira] [Updated] (GROOVY-9250) NoClassDefFoundError when parsing script
[ https://issues.apache.org/jira/browse/GROOVY-9250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Radoslav Ivanov updated GROOVY-9250: Description: We are trying to jump from 2.4.15 to 2.5.8 Groovy Runtime but we get that error now when calling parseScript on the GroovyClassLoader. Any help would be appreciated. {code:java} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during instruction selection: java.lang.NoClassDefFoundError: com.some.clazzjava.lang.RuntimeException: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1107) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:634) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:612) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:589) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:320) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:262) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:272) Caused by: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createFieldNode(MemberSignatureParser.java:158) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:205) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredConstructors(DecompiledClassNode.java:108) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassNode.getDeclaredConstructors(ClassNode.java:484) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:4425) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodOrFail(StaticTypeCheckingVisitor.java:4279) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.findMethodOrFail(StaticCompilationVisitor.java:457) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorCallExpression(StaticTypeCheckingVisitor.java:2202) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitConstructorCallExpression(StaticCompilationVisitor.java:413) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:43) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:822) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitDeclarationExpression(CodeVisitorSupport.java:296) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitDeclarationExpression(ClassCodeVisitorSupport.java:116) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:89) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:120) at
[jira] [Created] (GROOVY-9250) NoClassDefFoundError when parsing script
Radoslav Ivanov created GROOVY-9250: --- Summary: NoClassDefFoundError when parsing script Key: GROOVY-9250 URL: https://issues.apache.org/jira/browse/GROOVY-9250 Project: Groovy Issue Type: Bug Components: groovy-runtime Affects Versions: 2.5.8 Environment: OpenJDK 11.0.2 Groovy 2.5.8 WildFly 16.0.0 Reporter: Radoslav Ivanov We are trying to jump from 2.4.15 to 2.5.8 Groovy Runtime but we get that error now when calling parseScript on the GroovyClassLoader. Any help would be appreciated. {code:java} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during instruction selection: java.lang.NoClassDefFoundError: com.some.clazzjava.lang.RuntimeException: java.lang.NoClassDefFoundError: com.some.clazz at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1107) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:634) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:612) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:589) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:320) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:262) at org.codehaus.groovy@2.5.8//groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:272) Caused by: java.lang.NoClassDefFoundError: com.jayway.jsonpath.DocumentContext at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:79) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:70) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createFieldNode(MemberSignatureParser.java:158) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:205) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredConstructors(DecompiledClassNode.java:108) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassNode.getDeclaredConstructors(ClassNode.java:484) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:4425) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodOrFail(StaticTypeCheckingVisitor.java:4279) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.findMethodOrFail(StaticCompilationVisitor.java:457) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorCallExpression(StaticTypeCheckingVisitor.java:2202) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitConstructorCallExpression(StaticCompilationVisitor.java:413) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:43) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:822) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.CodeVisitorSupport.visitDeclarationExpression(CodeVisitorSupport.java:296) at org.codehaus.groovy@2.5.8//org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitDeclarationExpression(ClassCodeVisitorSupport.java:116) at
[GitHub] [groovy] paulk-asert commented on issue #998: GROOVY-9236: Avoid unnecessary resolving
paulk-asert commented on issue #998: GROOVY-9236: Avoid unnecessary resolving URL: https://github.com/apache/groovy/pull/998#issuecomment-530208773 Go ahead and commit. I still want to do more testing but won't get time until next week. We can revert/tweak later if we really need to. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[jira] [Assigned] (GROOVY-8572) Groovy 2.4.12 Static compiler fails on nonsense type inference error
[ https://issues.apache.org/jira/browse/GROOVY-8572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Milles reassigned GROOVY-8572: --- Assignee: Eric Milles > Groovy 2.4.12 Static compiler fails on nonsense type inference error > > > Key: GROOVY-8572 > URL: https://issues.apache.org/jira/browse/GROOVY-8572 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker >Affects Versions: 2.4.12 >Reporter: Martin Skurla >Assignee: Eric Milles >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > I am using Gradle which internally currently uses Groovy 2.4.12. > I am getting the following error: > {code:java} > martin@martin-desktop:~/devel/apollo/buildteam/gradle_plugins(master)$ > ./gradlew clean test > > Task :compileGroovy > startup failed: > /home/martin/devel/apollo/buildteam/gradle_plugins/src/main/groovy/apollosoft/build/support/gradle/assets/ApolloAssetsDSLExtension.groovy: > 54: [Static type checking] - Cannot use diamond <> with anonymous inner > classes > @ line 54, column 28. > closure.delegate = new Object() { > ^ > 1 error > {code} > It looks like it is wrong, I am not specifying any diamond operator anywhere. -- This message was sent by Atlassian Jira (v8.3.2#803003)
[jira] [Comment Edited] (GROOVY-8572) Groovy 2.4.12 Static compiler fails on nonsense type inference error
[ https://issues.apache.org/jira/browse/GROOVY-8572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926897#comment-16926897 ] Eric Milles edited comment on GROOVY-8572 at 9/10/19 9:24 PM: -- Still a problem in 2.4.17. StaticTypeCheckingVisitor is going into this block to generate the error: {code:java} protected void inferDiamondType(final ConstructorCallExpression cce, final ClassNode lType) { // check if constructor call expression makes use of the diamond operator ClassNode node = cce.getType(); if (node.isUsingGenerics() && node instanceof InnerClassNode && ((InnerClassNode) node).isAnonymous()) { ClassNode[] interfaces = node.getInterfaces(); node = interfaces != null && interfaces.length == 1 ? interfaces[0] : node.getUnresolvedSuperClass(false); if ((node.getGenericsTypes() == null || node.getGenericsTypes().length == 0) && lType.isUsingGenerics()) { // InterfaceA obj = new InterfaceA<>() { ... } // InterfaceA obj = new ClassA<>() { ... } // ClassA obj = new ClassA<>() { ... } addStaticTypeError("Cannot use diamond <> with anonymous inner classes", cce); } } {code} It goes there because ResolveVisitor is setting usingGenerics to true in resolveGenericsTypes and supporting methods. I'm not sure why ResolveVisitor is setting this flag for the anon. inner when the type being resolved is {{Map}} or {{List}}, which are types used within the anon. inner class body. https://github.com/apache/groovy/commit/01c5b0acea4768edffd1b2609c651bfeb5121889 was (Author: emilles): Still a problem in 2.4.17. StaticTypeCheckingVisitor is going into this block to generate the error: {code:java} protected void inferDiamondType(final ConstructorCallExpression cce, final ClassNode lType) { // check if constructor call expression makes use of the diamond operator ClassNode node = cce.getType(); if (node.isUsingGenerics() && node instanceof InnerClassNode && ((InnerClassNode) node).isAnonymous()) { ClassNode[] interfaces = node.getInterfaces(); node = interfaces != null && interfaces.length == 1 ? interfaces[0] : node.getUnresolvedSuperClass(false); if ((node.getGenericsTypes() == null || node.getGenericsTypes().length == 0) && lType.isUsingGenerics()) { // InterfaceA obj = new InterfaceA<>() { ... } // InterfaceA obj = new ClassA<>() { ... } // ClassA obj = new ClassA<>() { ... } addStaticTypeError("Cannot use diamond <> with anonymous inner classes", cce); } } {code} It goes there because ResolveVisitor is setting usingGenerics to true in resolveGenericsTypes and supporting methods. I'm not sure why ResolveVisitor is setting this flag for the anon. inner when the type being resolved is {{Map}} or {{List}}, which are types used within the anon. inner class body. > Groovy 2.4.12 Static compiler fails on nonsense type inference error > > > Key: GROOVY-8572 > URL: https://issues.apache.org/jira/browse/GROOVY-8572 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker >Affects Versions: 2.4.12 >Reporter: Martin Skurla >Priority: Major > > I am using Gradle which internally currently uses Groovy 2.4.12. > I am getting the following error: > {code:java} > martin@martin-desktop:~/devel/apollo/buildteam/gradle_plugins(master)$ > ./gradlew clean test > > Task :compileGroovy > startup failed: > /home/martin/devel/apollo/buildteam/gradle_plugins/src/main/groovy/apollosoft/build/support/gradle/assets/ApolloAssetsDSLExtension.groovy: > 54: [Static type checking] - Cannot use diamond <> with anonymous inner > classes > @ line 54, column 28. > closure.delegate = new Object() { > ^ > 1 error > {code} > It looks like it is wrong, I am not specifying any diamond operator anywhere. -- This message was sent by Atlassian Jira (v8.3.2#803003)
[jira] [Commented] (GROOVY-8572) Groovy 2.4.12 Static compiler fails on nonsense type inference error
[ https://issues.apache.org/jira/browse/GROOVY-8572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926897#comment-16926897 ] Eric Milles commented on GROOVY-8572: - Still a problem in 2.4.17. StaticTypeCheckingVisitor is going into this block to generate the error: {code:java} protected void inferDiamondType(final ConstructorCallExpression cce, final ClassNode lType) { // check if constructor call expression makes use of the diamond operator ClassNode node = cce.getType(); if (node.isUsingGenerics() && node instanceof InnerClassNode && ((InnerClassNode) node).isAnonymous()) { ClassNode[] interfaces = node.getInterfaces(); node = interfaces != null && interfaces.length == 1 ? interfaces[0] : node.getUnresolvedSuperClass(false); if ((node.getGenericsTypes() == null || node.getGenericsTypes().length == 0) && lType.isUsingGenerics()) { // InterfaceA obj = new InterfaceA<>() { ... } // InterfaceA obj = new ClassA<>() { ... } // ClassA obj = new ClassA<>() { ... } addStaticTypeError("Cannot use diamond <> with anonymous inner classes", cce); } } {code} It goes there because ResolveVisitor is setting usingGenerics to true in resolveGenericsTypes and supporting methods. I'm not sure why ResolveVisitor is setting this flag for the anon. inner when the type being resolved is {{Map}} or {{List}}, which are types used within the anon. inner class body. > Groovy 2.4.12 Static compiler fails on nonsense type inference error > > > Key: GROOVY-8572 > URL: https://issues.apache.org/jira/browse/GROOVY-8572 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker >Affects Versions: 2.4.12 >Reporter: Martin Skurla >Priority: Major > > I am using Gradle which internally currently uses Groovy 2.4.12. > I am getting the following error: > {code:java} > martin@martin-desktop:~/devel/apollo/buildteam/gradle_plugins(master)$ > ./gradlew clean test > > Task :compileGroovy > startup failed: > /home/martin/devel/apollo/buildteam/gradle_plugins/src/main/groovy/apollosoft/build/support/gradle/assets/ApolloAssetsDSLExtension.groovy: > 54: [Static type checking] - Cannot use diamond <> with anonymous inner > classes > @ line 54, column 28. > closure.delegate = new Object() { > ^ > 1 error > {code} > It looks like it is wrong, I am not specifying any diamond operator anywhere. -- This message was sent by Atlassian Jira (v8.3.2#803003)
[jira] [Commented] (GROOVY-7375) Incorrect closure owner inside anonymous inner class
[ https://issues.apache.org/jira/browse/GROOVY-7375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16926782#comment-16926782 ] Eric Milles commented on GROOVY-7375: - The delegate and owner seem correct within the closure "c". Replacing "m()" with either "println owner" or "printle delegate" outputs "B$1", which is the anon. inner that is assigned to the "a" property. The resolution of the method "m" seems to be missing a check on the parent type(s) of the anon. inner class. > Incorrect closure owner inside anonymous inner class > > > Key: GROOVY-7375 > URL: https://issues.apache.org/jira/browse/GROOVY-7375 > Project: Groovy > Issue Type: Bug > Components: Compiler >Affects Versions: 2.4.3 >Reporter: Geoff Cadien >Priority: Major > > {code} > abstract class A { >private void m() { > println 'm' > } > > void wrong() { > m() > Closure c = { > m() > } > c() > } > } > class B { > A a = new A() {} > > void b() { >a.wrong() > } > } > def b = new B() > b.b() > {code} > Produces the following error: > {code} > groovy.lang.MissingMethodException: No signature of method: B.m() is > applicable for argument types: () values: [] > Possible solutions: b(), is(java.lang.Object), dump(), any(), > any(groovy.lang.Closure), use([Ljava.lang.Object;) > at B.this$dist$invoke$1(wrong.groovy) > at B$1.methodMissing(wrong.groovy) > at A.invokeMethod(wrong.groovy) > at A$_wrong_closure1.doCall(wrong.groovy:9) > at A$_wrong_closure1.doCall(wrong.groovy) > at A.wrong(wrong.groovy:12) > at A$wrong.call(Unknown Source) > at B.b(wrong.groovy:20) > at B$b.call(Unknown Source) > at wrong.run(wrong.groovy:25) > {code} -- This message was sent by Atlassian Jira (v8.3.2#803003)
[GitHub] [groovy] danielsun1106 edited a comment on issue #998: GROOVY-9236: Avoid unnecessary resolving
danielsun1106 edited a comment on issue #998: GROOVY-9236: Avoid unnecessary resolving URL: https://github.com/apache/groovy/pull/998#issuecomment-529890504 @paulk-asert In theory, it is not a breaking change and its build is green. But we can not test all frameworks based on Groovy, so how about merge the PR for the time being and ask framework maintainers to give it a try? I think it conforms to the meaning of beta releases. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] [groovy] danielsun1106 commented on issue #998: GROOVY-9236: Avoid unnecessary resolving
danielsun1106 commented on issue #998: GROOVY-9236: Avoid unnecessary resolving URL: https://github.com/apache/groovy/pull/998#issuecomment-529890504 @paulk-asert In theory, it is not a breaking chang and its build is green. But we can not test all frameworks based on Groovy, so how about merge the PR for the time being and ask framework maintainers to give it a try? I think it conforms to the meaning of beta releases. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services