You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2019/08/15 18:24:00 UTC

[jira] [Comment Edited] (CALCITE-3246) NullPointerException while deserializing of udf.

    [ https://issues.apache.org/jira/browse/CALCITE-3246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16908385#comment-16908385 ] 

Julian Hyde edited comment on CALCITE-3246 at 8/15/19 6:23 PM:
---------------------------------------------------------------

The PR seems to be putting class name into the serialized form. What are the security implications? Let's not commit this PR until we are sure that this does not introduce security holes.


was (Author: julianhyde):
The PR seems to be putting class name into the serialized form. What are the security implications?

> NullPointerException  while deserializing of udf.
> -------------------------------------------------
>
>                 Key: CALCITE-3246
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3246
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Wang Yanlin
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> when deserializing of logical rel with udf operator, NPE occurs.
> The exception stacktrace as follow.
> {code:java}
> java.lang.RuntimeException: java.lang.NullPointerException
> 	at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:181)
> 	at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:125)
> 	at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:143)
> 	at org.apache.calcite.plan.RelWriterTest.testUdf(RelWriterTest.java:598)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
> 	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
> Caused by: java.lang.NullPointerException
> 	at java.util.Objects.requireNonNull(Objects.java:203)
> 	at org.apache.calcite.rex.RexCall.<init>(RexCall.java:83)
> 	at org.apache.calcite.rex.RexBuilder.makeCall(RexBuilder.java:237)
> 	at org.apache.calcite.rel.externalize.RelJson.toRex(RelJson.java:485)
> 	at org.apache.calcite.rel.externalize.RelJsonReader$2.getExpressionList(RelJsonReader.java:204)
> 	at org.apache.calcite.rel.core.Project.<init>(Project.java:100)
> 	at org.apache.calcite.rel.logical.LogicalProject.<init>(LogicalProject.java:88)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> 	at org.apache.calcite.rel.externalize.RelJsonReader.readRel(RelJsonReader.java:261)
> 	at org.apache.calcite.rel.externalize.RelJsonReader.readRels(RelJsonReader.java:91)
> 	at org.apache.calcite.rel.externalize.RelJsonReader.read(RelJsonReader.java:85)
> 	at org.apache.calcite.plan.RelWriterTest.lambda$testUdf$7(RelWriterTest.java:603)
> 	at org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:130)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:915)
> 	at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:179)
> 	... 25 more
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)