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

Reply via email to