[
https://issues.apache.org/jira/browse/CALCITE-3745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated CALCITE-3745:
------------------------------------
Labels: pull-request-available (was: )
> UnitCompiler can not find required class information.
> -----------------------------------------------------
>
> Key: CALCITE-3745
> URL: https://issues.apache.org/jira/browse/CALCITE-3745
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.21.0
> Environment:
> stacktrace:
> {code:java}
> Caused by: org.codehaus.commons.compiler.CompileException: Line 687, Column
> 40: Cannot determine simple type name "com"Caused by:
> org.codehaus.commons.compiler.CompileException: Line 687, Column 40: Cannot
> determine simple type name "com" at
> org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12124) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6746) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6507) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6520) at
> org.codehaus.janino.UnitCompiler.getType2(UnitCompiler.java:6486) at
> org.codehaus.janino.UnitCompiler.access$13800(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$21$1.visitReferenceType(UnitCompiler.java:6394)
> at
> org.codehaus.janino.UnitCompiler$21$1.visitReferenceType(UnitCompiler.java:6389)
> at org.codehaus.janino.Java$ReferenceType.accept(Java.java:3917) at
> org.codehaus.janino.UnitCompiler$21.visitType(UnitCompiler.java:6389) at
> org.codehaus.janino.UnitCompiler$21.visitType(UnitCompiler.java:6382) at
> org.codehaus.janino.Java$ReferenceType.accept(Java.java:3916) at
> org.codehaus.janino.UnitCompiler.getType(UnitCompiler.java:6382) at
> org.codehaus.janino.UnitCompiler.getType2(UnitCompiler.java:7034) at
> org.codehaus.janino.UnitCompiler.access$16900(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$21$2.visitNewClassInstance(UnitCompiler.java:6442)
> at
> org.codehaus.janino.UnitCompiler$21$2.visitNewClassInstance(UnitCompiler.java:6403)
> at org.codehaus.janino.Java$NewClassInstance.accept(Java.java:5179) at
> org.codehaus.janino.UnitCompiler$21.visitRvalue(UnitCompiler.java:6403) at
> org.codehaus.janino.UnitCompiler$21.visitRvalue(UnitCompiler.java:6382) at
> org.codehaus.janino.Java$Rvalue.accept(Java.java:4105) at
> org.codehaus.janino.UnitCompiler.getType(UnitCompiler.java:6382) at
> org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:8939) at
> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5060) at
> org.codehaus.janino.UnitCompiler.access$9100(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$16.visitMethodInvocation(UnitCompiler.java:4421)
> at
> org.codehaus.janino.UnitCompiler$16.visitMethodInvocation(UnitCompiler.java:4394)
> at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:5062) at
> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4394) at
> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5575) at
> org.codehaus.janino.UnitCompiler.compileBoolean2(UnitCompiler.java:4147) at
> org.codehaus.janino.UnitCompiler.access$6600(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$14.visitBinaryOperation(UnitCompiler.java:3955)
> at
> org.codehaus.janino.UnitCompiler$14.visitBinaryOperation(UnitCompiler.java:3933)
> at org.codehaus.janino.Java$BinaryOperation.accept(Java.java:4853) at
> org.codehaus.janino.UnitCompiler.compileBoolean(UnitCompiler.java:3933) at
> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:4709) at
> org.codehaus.janino.UnitCompiler.access$8800(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$16.visitConditionalExpression(UnitCompiler.java:4418)
> at
> org.codehaus.janino.UnitCompiler$16.visitConditionalExpression(UnitCompiler.java:4394)
> at org.codehaus.janino.Java$ConditionalExpression.accept(Java.java:4504) at
> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4394) at
> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5575) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2580) at
> org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1503)
> at
> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1487)
> at
> org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3511)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) at
> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1567) at
> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3388) at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1357)
> at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1330)
> at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:822) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:981) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:951) at
> org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:409)
> at
> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:406)
> at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:1149)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:406) at
> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5422) at
> org.codehaus.janino.UnitCompiler.access$9500(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$16.visitNewAnonymousClassInstance(UnitCompiler.java:4430)
> at
> org.codehaus.janino.UnitCompiler$16.visitNewAnonymousClassInstance(UnitCompiler.java:4394)
> at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:5227)
> at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4394) at
> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5575) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2649) at
> org.codehaus.janino.UnitCompiler.access$2800(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$6.visitReturnStatement(UnitCompiler.java:1504)
> at
> org.codehaus.janino.UnitCompiler$6.visitReturnStatement(UnitCompiler.java:1487)
> at org.codehaus.janino.Java$ReturnStatement.accept(Java.java:3552) at
> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) at
> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1567) at
> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3388) at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1357)
> at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1330)
> at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:822) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:981) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:951) at
> org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:409)
> at
> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:406)
> at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:1149)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:406) at
> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5422) at
> org.codehaus.janino.UnitCompiler.access$9500(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$16.visitNewAnonymousClassInstance(UnitCompiler.java:4430)
> at
> org.codehaus.janino.UnitCompiler$16.visitNewAnonymousClassInstance(UnitCompiler.java:4394)
> at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:5227)
> at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4394) at
> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5575) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2580) at
> org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1503)
> at
> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1487)
> at
> org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3511)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1487) at
> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1567) at
> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3388) at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1357)
> at
> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1330)
> at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:822) at
> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:432) at
> org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:215) at
> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:411)
> at
> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:406)
> at
> org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1414)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:406) at
> org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:378) at
> org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:237) at
> org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:465)
> at
> org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:313)
> at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:235)
> at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:207) at
> org.codehaus.commons.compiler.Cookable.cook(Cookable.java:50) at
> org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:347)
> {code}
> Reporter: SHEN KAI
> Priority: Major
> Labels: pull-request-available
>
> calcite uses specific classloader in Unitcompiler, Usually is the launcher's
> default class loader. If user run sql with UDF, and the UDF class is loaded
> by a child classloader, calcite's janino compiler throw a CompileException
> error.
> can calcite uses Thread.currentThread().getContextClassloader() to get the
> classloader in compiler?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)