SHEN KAI created CALCITE-3745:
---------------------------------
Summary: 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
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)