[teiid-issues] [JBoss JIRA] (TEIID-5189) Empty XmlElement throws an NPE when passed for the non-nullable parameter

dalex dalex (JIRA) issues at jboss.org
Wed Dec 27 12:03:00 EST 2017


     [ https://issues.jboss.org/browse/TEIID-5189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

dalex dalex updated TEIID-5189:
-------------------------------
    Steps to Reproduce: 
1. create the following proc:
{code:xml}
    <model visible = "true" type = "VIRTUAL" name = "views">
        <metadata type = "DDL"><![CDATA[
          create virtual procedure v0(IN soapBody xml not null) 
             returns (response xml) as
          begin
             select XmlElement(root, 'Hi!');
          end
        ]]>
        </metadata>
    </model>
{code}

2. when running the following query:
{code:sql}
call views.v0(
    soapBody => XmlElement(root)
);;
{code}
teiid throws out the following stacktrace:
{code:noformat}
2017-12-27 17:19:12,864 ERROR [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue5) l9O5D2rjxOO3 TEIID30019 Unexpected exception for request l9O5D2rjxOO3.0: java.lang.NullPointerExcep
tion
        at org.teiid.query.function.source.XMLSystemFunctions.xmlElement(XMLSystemFunctions.java:500)
        at org.teiid.query.eval.Evaluator.evaluateXMLElement(Evaluator.java:1130)
        at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:769)
        at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:707)
        at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:151)
        at org.teiid.query.validator.ValidationVisitor.visit(ValidationVisitor.java:341)
        at org.teiid.query.sql.lang.StoredProcedure.acceptVisitor(StoredProcedure.java:202)
        at org.teiid.query.sql.navigator.AbstractNavigator.visitVisitor(AbstractNavigator.java:50)
        at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.preVisitVisitor(PreOrPostOrderNavigator.java:51)
        at org.teiid.query.validator.Validator$1.preVisitVisitor(Validator.java:80)
        at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:358)
        at org.teiid.query.sql.lang.StoredProcedure.acceptVisitor(StoredProcedure.java:202)
        at org.teiid.query.validator.Validator.executeValidation(Validator.java:90)
        at org.teiid.query.validator.Validator.validate(Validator.java:44)
        at org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:338)
        at org.teiid.dqp.internal.process.Request.validateQuery(Request.java:290)
        at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:434)
        at org.teiid.dqp.internal.process.Request.processRequest(Request.java:486)
        at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:660)
        at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:339)
        at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
        at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

  was:
1. create the following view and proc:
{code:xml}
    <model visible = "true" type = "VIRTUAL" name = "views">
        <metadata type = "DDL"><![CDATA[
          create virtual procedure v0(IN soapBody xml not null) 
             returns (response xml) as
          begin
             select XmlElement(root, 'Hi!');
          end
        ]]>
        </metadata>
    </model>
{code}

2. when running the following query:
{code:sql}
call views.v0(
    soapBody => XmlElement(root)
);;
{code}
teiid throws out the following stacktrace:
{code:noformat}
2017-12-27 17:19:12,864 ERROR [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue5) l9O5D2rjxOO3 TEIID30019 Unexpected exception for request l9O5D2rjxOO3.0: java.lang.NullPointerExcep
tion
        at org.teiid.query.function.source.XMLSystemFunctions.xmlElement(XMLSystemFunctions.java:500)
        at org.teiid.query.eval.Evaluator.evaluateXMLElement(Evaluator.java:1130)
        at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:769)
        at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:707)
        at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:151)
        at org.teiid.query.validator.ValidationVisitor.visit(ValidationVisitor.java:341)
        at org.teiid.query.sql.lang.StoredProcedure.acceptVisitor(StoredProcedure.java:202)
        at org.teiid.query.sql.navigator.AbstractNavigator.visitVisitor(AbstractNavigator.java:50)
        at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.preVisitVisitor(PreOrPostOrderNavigator.java:51)
        at org.teiid.query.validator.Validator$1.preVisitVisitor(Validator.java:80)
        at org.teiid.query.sql.navigator.PreOrPostOrderNavigator.visit(PreOrPostOrderNavigator.java:358)
        at org.teiid.query.sql.lang.StoredProcedure.acceptVisitor(StoredProcedure.java:202)
        at org.teiid.query.validator.Validator.executeValidation(Validator.java:90)
        at org.teiid.query.validator.Validator.validate(Validator.java:44)
        at org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:338)
        at org.teiid.dqp.internal.process.Request.validateQuery(Request.java:290)
        at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:434)
        at org.teiid.dqp.internal.process.Request.processRequest(Request.java:486)
        at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:660)
        at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:339)
        at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
        at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}



> Empty XmlElement throws an NPE when passed for the non-nullable parameter
> -------------------------------------------------------------------------
>
>                 Key: TEIID-5189
>                 URL: https://issues.jboss.org/browse/TEIID-5189
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 10.0.1
>         Environment: teiid-10.0.1 on WildFly Full 11.0.0.Final (WildFly Core 3.0.8.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>            Priority: Critical
>
> Empty XmlElement throws an NPE when passed for the non-nullable parameter.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the teiid-issues mailing list