[ 
https://issues.apache.org/jira/browse/CALCITE-962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Elser resolved CALCITE-962.
--------------------------------
    Resolution: Fixed

Fixed in 
https://github.com/apache/calcite/commit/d1c72b80c67814f670a3d87580f44f913c4eb0e5

> Server-side exception (stack trace) not propagated in JdbcMeta.propagate
> ------------------------------------------------------------------------
>
>                 Key: CALCITE-962
>                 URL: https://issues.apache.org/jira/browse/CALCITE-962
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica
>    Affects Versions: 1.5.0
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>             Fix For: next
>
>
> Noticed the following in some automated tests against Phoenix:
> {noformat}
> java.lang.RuntimeException: Encountered exception in sub plan [0] execution.
>   at org.apache.calcite.avatica.jdbc.JdbcMeta.propagate(JdbcMeta.java:645)
>   at 
> org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:709)
>   at 
> org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:179)
>   at 
> org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:1049)
>   at 
> org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:1023)
>   at 
> org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:100)
>   at org.apache.calcite.avatica.remote.JsonHandler.apply(JsonHandler.java:43)
>   at 
> org.apache.calcite.avatica.server.AvaticaHandler.handle(AvaticaHandler.java:68)
>   at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
>   at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>   at org.eclipse.jetty.server.Server.handle(Server.java:497)
>   at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
>   at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245)
>   at 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
>   at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
>   at java.lang.Thread.run(Thread.java:745)
> {noformat}
> The good part, we got this exception from the server on the client! Oddly, we 
> didn't get an actual exception from Phoenix. It looks like we happened to 
> drop that context.
> {code}
> private RuntimeException propagate(Throwable e) {
>   if (e instanceof RuntimeException) {
>     throw (RuntimeException) e;
>   } else if (e instanceof Error) {
>     throw (Error) e;
>   } else {
>     throw new RuntimeException(e.getMessage());
>   }
> }
> {code}
> The else branch happened to drop the context from the cause. We want to be 
> sure to propagate this back to clients.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to