[ 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)