[jira] [Commented] (PHOENIX-3299) Janino could not work in shaded package

2016-12-06 Thread Maryann Xue (JIRA)

[ 
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

2016-12-06 Thread Julian Hyde (JIRA)

[ 
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

2016-12-06 Thread Josh Elser (JIRA)

[ 
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

2016-12-06 Thread James Taylor (JIRA)

[ 
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

2016-09-20 Thread Julian Hyde (JIRA)

[ 
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

2016-09-20 Thread Maryann Xue (JIRA)

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