[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15727761#comment-15727761 ] Maryann Xue commented on PHOENIX-3299: -- [~julianhyde], I think this is a different issue, and [~elserj] has pointed out that it's caused by failing to locate {{org.codehaus.commons.compiler.properties}} in the shaded package. bq. I think just adding an exclusion for commons-compiler/janino classes would be OK for a workaround. Yes, that's exactly how I made it work for my tests using sqlline. Would that be an acceptable change in Phoenix, [~jamestaylor]? > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) > at com.google.common.cache.LocalCache.get(LocalCache.java:3990) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:448) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484) > at > org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:187) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:115) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:113) > at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:111) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:103) > at > org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:225) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:595) > at org.apache.calcite.plan.R
[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726542#comment-15726542 ] Julian Hyde commented on PHOENIX-3299: -- Is this a duplicate of CALCITE-1461? > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) > at com.google.common.cache.LocalCache.get(LocalCache.java:3990) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:448) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484) > at > org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:187) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:115) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:113) > at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:111) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:103) > at > org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:225) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:595) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:581) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertWhere(SqlToRelConverter.java:966) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:644) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:622) > at > org.apache.calcite.sql2r
[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726498#comment-15726498 ] Josh Elser commented on PHOENIX-3299: - bq. But it you instantiate an object, then ask it its class name or package name, it will return the shaded path This is definitely the right idea in spirit but we're dealing with code we don't "own" which makes it harder. Pulled up the code from commons-compiler: {noformat} public static ICompilerFactory getDefaultCompilerFactory() throws Exception { if (CompilerFactoryFactory.defaultCompilerFactory == null) { Properties properties = new Properties(); InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "org.codehaus.commons.compiler.properties" ); if (is == null) { throw new ClassNotFoundException( "No implementation of org.codehaus.commons.compiler is on the class path. Typically, you'd have " + "'janino.jar', or 'commons-compiler-jdk.jar', or both on the classpath." ); } try { properties.load(is); } finally { is.close(); } String compilerFactoryClassName = properties.getProperty("compilerFactory"); CompilerFactoryFactory.defaultCompilerFactory = ( CompilerFactoryFactory.getCompilerFactory(compilerFactoryClassName) ); } return CompilerFactoryFactory.defaultCompilerFactory; } {noformat} So, I'm guessing that if we mangle together a correct {{org.codehaus.commons.compiler.properties}} with the correct contents in our shaded jar, we could make this work. [~maryannxue], I'd say let it boil down to the amount of time/effort (or maybe blood/sweat/tears) that you want to invest in trying to unwrap this. I think just adding an exclusion for commons-compiler/janino classes would be OK for a workaround (as I'd guess the likelihood of having multiples of those on the classpath is low). > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lock
[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726458#comment-15726458 ] James Taylor commented on PHOENIX-3299: --- Maybe our shading expert, [~elserj] has ideas? > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) > at com.google.common.cache.LocalCache.get(LocalCache.java:3990) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:448) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484) > at > org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:187) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:115) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:113) > at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:111) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:103) > at > org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:225) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:595) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:581) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertWhere(SqlToRelConverter.java:966) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:644) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:622) > at > org.apache.c
[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15507187#comment-15507187 ] Julian Hyde commented on PHOENIX-3299: -- If you hard-code a package name or class name, shade can't re-locate it. But it you instantiate an object, then ask it its class name or package name, it will return the shaded path. Can you do that? Maybe have a dummy singleton object, say {{enum Dummy { INSTANCE } }}. > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) > at com.google.common.cache.LocalCache.get(LocalCache.java:3990) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:448) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484) > at > org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:187) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:115) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:113) > at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:111) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:103) > at > org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:225) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:595) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:581) > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertWhere(SqlToRelConverter.java:966) >
[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package
[ https://issues.apache.org/jira/browse/PHOENIX-3299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15507072#comment-15507072 ] Maryann Xue commented on PHOENIX-3299: -- Looks like after being moved to the shaded package, Janino could not locate the corresponding packages for implementation classes. I tried removing the "relocation" node for codehaus in pom files and it worked, but I'm wondering if there's a better way to resolve this issue. [~jamestaylor], [~julianhyde], any ideas? > Janino could not work in shaded package > --- > > Key: PHOENIX-3299 > URL: https://issues.apache.org/jira/browse/PHOENIX-3299 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.8.0 >Reporter: Maryann Xue >Assignee: Maryann Xue > > Calcite-Phoenix would encounter this ClassNotFoundException when trying to > initiate its compiler. It was caused by putting janino into shaded packages. > {code} > imit 100": Unable to instantiate java compiler > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147) > at > org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:199) > at sqlline.Commands.execute(Commands.java:822) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.runCommands(SqlLine.java:1710) > at sqlline.Commands.run(Commands.java:1285) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:613) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > Caused by: java.lang.IllegalStateException: Unable to instantiate java > compiler > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:417) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.load3(JaninoRelMetadataProvider.java:358) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.access$000(JaninoRelMetadataProvider.java:94) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:113) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$1.load(JaninoRelMetadataProvider.java:110) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) > at com.google.common.cache.LocalCache.get(LocalCache.java:3990) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:448) > at > org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484) > at > org.apache.calcite.rel.metadata.RelMdCollation.filter(RelMdCollation.java:187) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:115) > at > org.apache.calcite.rel.logical.LogicalFilter$2.get(LogicalFilter.java:113) > at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:111) > at > org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:103) > at > org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:225) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:595) > at org.apache.calcite.plan.RelOptUtil.createFilter(RelOptUtil.java:581) > at > org.apache.calcite.sql2rel.SqlToRelConverter.