[ 
https://issues.apache.org/jira/browse/GROOVY-11046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17799155#comment-17799155
 ] 

Eric Milles commented on GROOVY-11046:
--------------------------------------

https://github.com/apache/groovy/commit/9a16ac96d09a654a5ddf216f42913da547c04495

> Better diagnostic message instead of stacktrace?
> ------------------------------------------------
>
>                 Key: GROOVY-11046
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11046
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static Type Checker
>            Reporter: Thodoris Sotiropoulos
>            Assignee: Eric Milles
>            Priority: Minor
>
> The following program that uses the log4j-core library
> {code}
> class Test {
>     void test() {
>         org.apache.logging.log4j.core.async.AsyncLogger d = null;
>     }
> }
> {code}
> h3. Actual behavior
> {code}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during conversion: java.lang.NoClassDefFoundError: 
> com.lmax.disruptor.EventTranslatorVararg
> java.lang.RuntimeException: java.lang.NoClassDefFoundError: 
> com.lmax.disruptor.EventTranslatorVararg
>         at 
> org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:982)
>         at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:694)
>         at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:668)
>         at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:649)
>         at 
> org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:311)
>         at 
> org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:240)
>         at 
> org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:165)
>         at 
> org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:205)
>         at 
> org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:189)
> Caused by: java.lang.NoClassDefFoundError: 
> com.lmax.disruptor.EventTranslatorVararg
>         at 
> org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46)
>         at 
> org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:113)
>         at 
> groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206)
>         at 
> groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124)
>         at 
> org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111)
>         at 
> org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35)
>         at 
> org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189)
>         at 
> org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148)
>         at 
> org.codehaus.groovy.control.GenericsVisitor.checkGenericsUsage(GenericsVisitor.java:157)
>         at 
> org.codehaus.groovy.control.GenericsVisitor.checkGenericsUsage(GenericsVisitor.java:151)
>         at 
> org.codehaus.groovy.control.GenericsVisitor.visitDeclarationExpression(GenericsVisitor.java:113)
>         at 
> org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:92)
>         at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:117)
>         at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:212)
>         at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:41)
>         at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
>         at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:175)
>         at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:72)
>         at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:139)
>         at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:118)
>         at 
> org.codehaus.groovy.control.GenericsVisitor.visitConstructorOrMethod(GenericsVisitor.java:93)
>         at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:110)
>         at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1142)
>         at 
> org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1135)
>         at 
> org.codehaus.groovy.control.GenericsVisitor.visitClass(GenericsVisitor.java:74)
>         at 
> org.codehaus.groovy.control.CompilationUnit.lambda$addPhaseOperations$7(CompilationUnit.java:238)
>         at 
> org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:948)
>         ... 8 more
> 1 error
> {code}
> h3. Expected behavior
> Reject the program with an appropriate diagnostic message when 
> "com.lmax.disruptor.EventTranslatorVararg" is not in the classpath.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to