To repeat, it would help if there were a Jira case. I don’t want to debug 
problems with janino 3.1.6 unless I know why we’re upgrading to 3.1.6. Also, we 
have a duty to reduce volume on the dev list.

> On Feb 25, 2022, at 7:19 PM, xiaobo <guxiaobo1...@qq.com.INVALID> wrote:
> 
> Hi Gavin and Julian,
> Thanks for your help, we know that upgrading janino and common compiler to 
> 3.1.6 will fix the "operand stack underflow" error, but we have also have 
> problem with 3.1.6 of janino as mentioned before:
> ----------------------
> 
> we checked the janino release note page
> http://janino-compiler.github.io/janino/changelog.html
> 
> Fixed issue #141: Unable to find org.codehaus.commons.compiler.properties in 
> java 11: ICompilerFactories were loaded through the current thread's "context 
> class loader", which is a bad choice in some environments. Thus, the methods 
> "getDefaultCompilerFactory()", "getAllCompilerFactories()" and 
> "getCompilerFactory(className)" were duplicated and augmented with a 
> "classLoader" parameter. 
> 
> what does this mean?  the getDefaultCompilerFactory method with a classloader 
> parameter was removed intentionally?
> but it seems calcite still needs it .
> --------------------
> 
> 
> What we mean here is that we think calcite has a bug with janino 3.1.6 , are 
> we right?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ------------------ Original ------------------
> From:  "Julian Hyde";<jhyde.apa...@gmail.com>;
> Send time: Saturday, Feb 26, 2022 1:24 AM
> To: "dev"<dev@calcite.apache.org>; 
> 
> Subject:  Re: calcite multi-threading problem
> 
> 
> 
> Should a jira case be logged for this issue? Or is there an existing case? If 
> the latter, should we add a stack trace to help people tie it to this problem?
> 
> A jira URL in this thread will help other people who run into this problem in 
> future. Right now it is just a rambling email thread with an off-topic 
> subject.
> 
> Julian
> 
>> On Feb 25, 2022, at 7:18 AM, Gavin Ray <ray.gavi...@gmail.com> wrote:
>> 
>> Also I just checked and this is updated on master so it should be solved in
>> next release FWIW:
>> 
>> https://github.com/apache/calcite/blob/cbbe5701b7f61d7f8df12d314ba5aabf898c1cae/gradle.properties#L116
>> 
>>> On Fri, Feb 25, 2022 at 10:16 AM Gavin Ray <ray.gavi...@gmail.com> wrote:
>>> 
>>> The fix for this is just to add janino and commons-compiler as exclusions
>>> in the calcite/avatica dependencies
>>> And then add the updated version so that it overwrites them
>>> 
>>> I tested this on your code and it worked
>>> 
>>> Also, please listen to Stamatis/Julian advice
>>> 
>>> <dependencies>
>>> <dependency>
>>> <groupId>org.apache.calcite</groupId>
>>> <artifactId>calcite-core</artifactId>
>>> <version>1.29.0</version>
>>> <exclusions>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>janino</artifactId>
>>> </exclusion>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>commons-compiler</artifactId>
>>> </exclusion>
>>> </exclusions>
>>> </dependency>
>>> 
>>> <dependency>
>>> <groupId>org.apache.calcite.avatica</groupId>
>>> <artifactId>avatica-core</artifactId>
>>> <version>1.20.0</version>
>>> <exclusions>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>janino</artifactId>
>>> </exclusion>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>commons-compiler</artifactId>
>>> </exclusion>
>>> </exclusions>
>>> </dependency>
>>> 
>>> <dependency>
>>> <groupId>org.apache.calcite</groupId>
>>> <artifactId>calcite-file</artifactId>
>>> <version>1.29.0</version>
>>> <exclusions>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>janino</artifactId>
>>> </exclusion>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>commons-compiler</artifactId>
>>> </exclusion>
>>> </exclusions>
>>> </dependency>
>>> 
>>> <dependency>
>>> <groupId>org.apache.calcite</groupId>
>>> <artifactId>calcite-example-csv</artifactId>
>>> <version>1.21.0</version>
>>> <exclusions>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>janino</artifactId>
>>> </exclusion>
>>> <exclusion>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>commons-compiler</artifactId>
>>> </exclusion>
>>> </exclusions>
>>> </dependency>
>>> 
>>> <dependency>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>janino</artifactId>
>>> <version>3.1.6</version>
>>> </dependency>
>>> 
>>> <dependency>
>>> <groupId>org.codehaus.janino</groupId>
>>> <artifactId>commons-compiler</artifactId>
>>> <version>3.1.6</version>
>>> </dependency>
>>> </dependencies>
>>> 
>>> 
>>> On Fri, Feb 25, 2022 at 9:33 AM xiaobo <guxiaobo1...@qq.com.invalid>
>>> wrote:
>>> 
>>>> I have put the testing code at github
>>>> 
>>>> 
>>>> https://github.com/guxiaobo/gxb-testing/blob/main/calcite-testing/src/test/java/com/xsmartware/testing/calcite/Test1.java
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Friday, Feb 25, 2022 9:05 PM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:        calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> Hi,
>>>> Now we come to the  problem similar as the one at
>>>> https://github.com/apache/calcite/pull/2433#issuecomment-860024076,
>>>> 
>>>> a simple sql "select max(id) from s.t1" caused the following exception,
>>>> users report upgrading janino to 3.1.6 can fix this problem, but as we
>>>> discussed before janino 3.1.6 is not fully compatible with calcite 1.29.0
>>>> because of the dependency issue.
>>>> 
>>>> 
>>>> 
>>>>       at org.apache.calcite.avatica.Helper.wrap(Helper.java:37)
>>>> ~[avatica-core-1.20.0.jar:1.20.0]
>>>>       at
>>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:130)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.prepare_(CalcitePrepareImpl.java:1032)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.prepareRel(CalcitePrepareImpl.java:988)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:668)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:229)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       ... 13 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException:
>>>> Compiling "Baz" in File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 1,
>>>> Column 1: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 41,
>>>> Column 45: Compiling "bind(org.apache.calcite.DataContext root)": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60,
>>>> Column 64
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:369)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:333)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:330)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:294)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:288)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52)
>>>> ~[commons-compiler-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:428)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:166)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       at
>>>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:127)
>>>> ~[calcite-core-1.29.0.jar:1.29.0]
>>>>       ... 21 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 41,
>>>> Column 45: Compiling "bind(org.apache.calcite.DataContext root)": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60,
>>>> Column 64
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3222)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:391)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:386)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1692)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 34 common frames omitted
>>>> Caused by: java.lang.RuntimeException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60,
>>>> Column 64
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2639)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1539)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1523)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3840)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 44 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 60,
>>>> Column 80: Compiling "new
>>>> org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(new
>>>> org.apache.calcite.linq4j.function.Function0() { ... },
>>>> accumulatorAdders)": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 61,
>>>> Column 5: Compiling "new org.apache.calcite.linq4j.function.Function0() {
>>>> ... }": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62,
>>>> Column 21: Compiling "apply()": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70,
>>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand
>>>> stack underflow
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5731)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2622)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 52 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 61,
>>>> Column 5: Compiling "new org.apache.calcite.linq4j.function.Function0() {
>>>> ... }": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62,
>>>> Column 21: Compiling "apply()": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70,
>>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand
>>>> stack underflow
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5731)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.invokeConstructor(UnitCompiler.java:8297)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5468)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$9700(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$15.visitNewClassInstance(UnitCompiler.java:4643)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$15.visitNewClassInstance(UnitCompiler.java:4604)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$NewClassInstance.accept(Java.java:5560)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 53 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 62,
>>>> Column 21: Compiling "apply()": File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70,
>>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand
>>>> stack underflow
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3222)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:977)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:947)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$200(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:389)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$2.visitAnonymousClassDeclaration(UnitCompiler.java:386)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:1375)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5571)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$9400(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$15.visitNewAnonymousClassInstance(UnitCompiler.java:4640)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$15.visitNewAnonymousClassInstance(UnitCompiler.java:4604)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:5608)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 61 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException: File
>>>> '/Users/linda/Downloads/janino/janino6606844895950068558.java', Line 70,
>>>> Column 17: org.codehaus.commons.compiler.InternalCompilerException: Operand
>>>> stack underflow
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2393)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$1800(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1530)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$6.visitExpressionStatement(UnitCompiler.java:1523)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:3198)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 78 common frames omitted
>>>> Caused by: org.codehaus.commons.compiler.InternalCompilerException:
>>>> Operand stack underflow
>>>>       at org.codehaus.janino.StackMap.peekOperand(StackMap.java:94)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.CodeContext.popOperand(CodeContext.java:1349)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.putfield(UnitCompiler.java:12363)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6498)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$13400(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:6480)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$20.visitFieldAccess(UnitCompiler.java:6475)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at org.codehaus.janino.Java$FieldAccess.accept(Java.java:4668)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileSet2(UnitCompiler.java:6489)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$13200(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:6478)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$20.visitAmbiguousName(UnitCompiler.java:6475)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at org.codehaus.janino.Java$AmbiguousName.accept(Java.java:4574)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compileSet(UnitCompiler.java:6475)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3992)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.access$6000(UnitCompiler.java:231)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:3944)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler$12.visitAssignment(UnitCompiler.java:3924)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at org.codehaus.janino.Java$Assignment.accept(Java.java:4835)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3924)
>>>> ~[janino-3.1.4.jar:na]
>>>>       at
>>>> org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2391)
>>>> ~[janino-3.1.4.jar:na]
>>>>       ... 86 common frames omitted
>>>> 
>>>> With janino 3.1.4
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 9:14 PM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:       calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> 3.1.4 of janino and commons-compiler works now.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 8:04 PM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:      calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> but strange enough, the same code works in a single thread.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 8:02 PM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:     calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> we checked the janino release note page
>>>> http://janino-compiler.github.io/janino/changelog.html
>>>> 
>>>> Fixed issue #141: Unable to find org.codehaus.commons.compiler.properties
>>>> in java 11: ICompilerFactories were loaded through the current thread's
>>>> "context class loader", which is a bad choice in some environments. Thus,
>>>> the methods "getDefaultCompilerFactory()", "getAllCompilerFactories()" and
>>>> "getCompilerFactory(className)" were duplicated and augmented with a
>>>> "classLoader" parameter.
>>>> 
>>>> what does this mean?  the getDefaultCompilerFactory method with a
>>>> classloader parameter was removed intentionally?
>>>> but it seems calcite still needs it , so what version of janino should we
>>>> use for the latest calcite-core?
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 12:01 PM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:    calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> In our use case, the Java class which opens calcite connection is
>>>> contained in a external Java jar file, which is loaded dynamicly through
>>>> classloaders other than the default systemloader like this:
>>>> 
>>>> 
>>>> try {
>>>>           ClassLoader loader = URLClassLoader.newInstance(
>>>>                   new URL[] { new URL("jar:file:" + path + "!/") },
>>>>                   getClass().getClassLoader());
>>>>           Class<?> clazz = Class.forName(classPath, true, loader);
>>>> 
>>>> we mention this because the error message shows a classloader parameter.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 11:56 AM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:   calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> And if we remove calcite from our project,  janino is not in "resolved
>>>> depencies" library list of pom.xml,
>>>> So we think it not the janino conflic problem.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiaobo ";<guxiaobo1...@qq.com>;
>>>> Send time: Saturday, Feb 12, 2022 9:49 AM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re:  calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> can you share the solution for the problem, we are using the following
>>>> libraries, and it seems janino 3.1.6  is only dependent by calcite-core.
>>>> 
>>>>   <properties>
>>>> 
>>>> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>>>>         <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
>>>>         <java.version>9</java.version>
>>>>         <maven.compiler.source>9</maven.compiler.source>
>>>>         <maven.compiler.target>9</maven.compiler.target>
>>>>       <log4j2.version>2.17.1</log4j2.version>
>>>>       <drools.version>7.64.0.Final</drools.version>
>>>>  </properties>
>>>> 
>>>> <groupId>org.apache.calcite</groupId>
>>>>           <artifactId>calcite-core</artifactId>
>>>>           <version>1.29.0</version>
>>>>       </dependency>
>>>>       <dependency>
>>>>           <groupId>org.apache.calcite.avatica</groupId>
>>>>           <artifactId>avatica-core</artifactId>
>>>>           <version>1.20.0</version>
>>>>       </dependency>
>>>> 
>>>> 
>>>>   <dependency>
>>>>           <groupId>org.drools</groupId>
>>>>           <artifactId>drools-core</artifactId>
>>>>           <version>${drools.version}</version>
>>>>       </dependency>
>>>>       <dependency>
>>>>           <groupId>org.drools</groupId>
>>>>           <artifactId>drools-compiler</artifactId>
>>>>           <version>${drools.version}</version>
>>>>       </dependency>
>>>>       <dependency>
>>>>           <groupId>org.drools</groupId>
>>>>           <artifactId>drools-decisiontables</artifactId>
>>>>           <version>${drools.version}</version>
>>>>       </dependency>
>>>> 
>>>> 
>>>> ------------------ Original ------------------
>>>> From:  "xiong duan";<nobigo...@gmail.com>;
>>>> Send time: Saturday, Feb 12, 2022 8:43 AM
>>>> To: "dev"<dev@calcite.apache.org>;
>>>> 
>>>> Subject:  Re: calcite multi-threading problem
>>>> 
>>>> 
>>>> 
>>>> Yes, It is a dependency issue. I have met the same problem. +1 for Dmitry.
>>>> 
>>>> Dmitry Sysolyatin <dm.sysolya...@gmail.com> 于2022年2月11日周五 21:18写道:
>>>> 
>>>>> Actually, I had the same problem with spark. Spark 3.2.1 uses the old
>>>>> version of janino, calcite 1.29 uses the new version of janino and they
>>>> are
>>>>> not compatible.
>>>>> If I downgrade janino version to version which spark uses I got an error
>>>>> not method found exception
>>>>> If I upgrade the janino version to the version which calcite uses I get
>>>> the
>>>>> same error but with another method.
>>>>> 
>>>>> As a result, I built a separate calcite jar package where I shaded
>>>> janino
>>>>> dependency
>>>>> 
>>>>> 
>>>>> 
>>>>> On Fri, Feb 11, 2022 at 2:39 PM stanilovsky evgeny <
>>>>> estanilovs...@gridgain.com> wrote:
>>>>> 
>>>>>> for example on a current calcite branch:
>>>>>> grep janino gradle.properties
>>>>>> janino.version=3.1.6
>>>>>> 
>>>>>> 
>>>>>>> yes, we use drools in the same project,&nbsp; and drools uses janino
>>>>>>> too, is there a version list of janino which calcite supports?
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> ---Original---
>>>>>>> From: "Dmitry Sysolyatin"<dm.sysolya...@gmail.com&gt;
>>>>>>> Date: Fri, Feb 11, 2022 18:30 PM
>>>>>>> To: "dev"<dev@calcite.apache.org&gt;;
>>>>>>> Subject: Re: calcite multi-threading problem
>>>>>>> 
>>>>>>> 
>>>>>>> Hi!
>>>>>>> 
>>>>>> 
>>>>> 
>>>> It&nbsp;looks&nbsp;like&nbsp;a&nbsp;dependency&nbsp;issue,&nbsp;not&nbsp;like&nbsp;a&nbsp;multi-threading&nbsp;issue.&nbsp;Most
>>>>>>> 
>>>>>> 
>>>>> 
>>>> likely&nbsp;you&nbsp;have&nbsp;some&nbsp;dependency&nbsp;that&nbsp;use&nbsp;another&nbsp;version&nbsp;of&nbsp;janino&nbsp;but
>>>>>>> calcite&nbsp;requires&nbsp;another&nbsp;one
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> On&nbsp;Fri,&nbsp;Feb&nbsp;11,&nbsp;2022&nbsp;at&nbsp;12:18&nbsp;PM&nbsp;xiaobo&nbsp;<guxiaobo1...@qq.com.invalid
>>>>>> &gt;&nbsp;wrote:
>>>>>>> 
>>>>>>> &gt;&nbsp;Hi,
>>>>>>> &gt;
>>>>>>> &gt;
>>>>>>> 
>>>>>> 
>>>>> 
>>>> &gt;&nbsp;we&nbsp;open&nbsp;a&nbsp;calcite&nbsp;connection&nbsp;with&nbsp;ReflectiveSchema&nbsp;in&nbsp;one&nbsp;thread,&nbsp;and
>>>>>>> 
>>>>>> 
>>>>> 
>>>> &gt;&nbsp;execute&nbsp;sqls&nbsp;in&nbsp;other&nbsp;&nbsp;threads&nbsp;against&nbsp;the&nbsp;connection,&nbsp;but&nbsp;failed&nbsp;with
>>>>>>> &gt;&nbsp;this&nbsp;error
>>>>>>> &gt;
>>>>>>> &gt;
>>>>>>> &gt;
>>>>>>> &gt;
>>>>>>> &gt;&nbsp;com.google.common.util.concurrent.ExecutionError:
>>>>>>> &gt;&nbsp;java.lang.NoSuchMethodError:
>>>>>>> &gt;
>>>>>>> 
>>>>>> 
>>>>> 
>>>> &gt;&nbsp;org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(Ljava/lang/ClassLoader;)
>>>>>>> &gt;
>>>>>>> &gt;&nbsp;Lorg/codehaus/commons/compiler/ICompilerFactory;
>>>>>>> &gt;
>>>>>>> &gt;
>>>>>>> 
>>>>>> 
>>>>> 
>>>> &gt;&nbsp;do&nbsp;we&nbsp;miss&nbsp;anything&nbsp;regarding&nbsp;to&nbsp;multi-threading&nbsp;with&nbsp;calcite?
>>>>>> 
>>>>> 
>>> 

Reply via email to