[jboss-jira] [JBoss JIRA] (DROOLS-2937) DMNRuntime API parameter nullcheck

Matteo Mortari (JIRA) issues at jboss.org
Wed Aug 29 03:11:01 EDT 2018


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

Matteo Mortari updated DROOLS-2937:
-----------------------------------
    Description: 
Given

{code:java}
        final DMNModel dmnModel = runtime.getModel("<wrong>", "<wrong>");
        // please notice an end-user of the API might not having checked the result of the previous call is not a null.
        DMNContext emptyContext = DMNFactory.newContext();
        DMNResult dmnResult = runtime.evaluateAll(dmnModel, emptyContext);
{code}

This would fail with:

{code:java}
java.lang.NullPointerException
	at org.kie.dmn.core.impl.DMNRuntimeImpl.performRuntimeTypeCheck(DMNRuntimeImpl.java:622)
	at org.kie.dmn.core.impl.DMNRuntimeImpl.evaluateAll(DMNRuntimeImpl.java:118)
	at org.kie.dmn.core.DMNRuntimeTypeCheckTest.testMisleadingNPEbyAPIusage(DMNRuntimeTypeCheckTest.java:199)
...
{code}

which is not very helpful for the end-user of API to understand he inadvertently passed a null model to the DMNRuntime.evaluateAll method.

With the proposed change:

{code:java}
java.lang.NullPointerException: Kie DMN API parameter 'model' cannot be null.
  at java.util.Objects.requireNonNull(Objects.java:290)
  at org.kie.dmn.core.impl.DMNRuntimeImpl.evaluateAll(DMNRuntimeImpl.java:123)
  at org.kie.dmn.core.DMNRuntimeTypeCheckTest.testMisleadingNPEbyAPIusage(DMNRuntimeTypeCheckTest.java:199)
...
{code}


  was:
Given

{code:java}
        final DMNModel dmnModel = runtime.getModel("<wrong>", "<wrong>");
        // please notice an end-user of the API might not having checked the result of the previous call is not a null.
        DMNContext emptyContext = DMNFactory.newContext();
        DMNResult dmnResult = runtime.evaluateAll(dmnModel, emptyContext);
{code}

This would fail with:





> DMNRuntime API parameter nullcheck
> ----------------------------------
>
>                 Key: DROOLS-2937
>                 URL: https://issues.jboss.org/browse/DROOLS-2937
>             Project: Drools
>          Issue Type: Enhancement
>          Components: dmn engine
>            Reporter: Matteo Mortari
>            Assignee: Matteo Mortari
>
> Given
> {code:java}
>         final DMNModel dmnModel = runtime.getModel("<wrong>", "<wrong>");
>         // please notice an end-user of the API might not having checked the result of the previous call is not a null.
>         DMNContext emptyContext = DMNFactory.newContext();
>         DMNResult dmnResult = runtime.evaluateAll(dmnModel, emptyContext);
> {code}
> This would fail with:
> {code:java}
> java.lang.NullPointerException
> 	at org.kie.dmn.core.impl.DMNRuntimeImpl.performRuntimeTypeCheck(DMNRuntimeImpl.java:622)
> 	at org.kie.dmn.core.impl.DMNRuntimeImpl.evaluateAll(DMNRuntimeImpl.java:118)
> 	at org.kie.dmn.core.DMNRuntimeTypeCheckTest.testMisleadingNPEbyAPIusage(DMNRuntimeTypeCheckTest.java:199)
> ...
> {code}
> which is not very helpful for the end-user of API to understand he inadvertently passed a null model to the DMNRuntime.evaluateAll method.
> With the proposed change:
> {code:java}
> java.lang.NullPointerException: Kie DMN API parameter 'model' cannot be null.
>   at java.util.Objects.requireNonNull(Objects.java:290)
>   at org.kie.dmn.core.impl.DMNRuntimeImpl.evaluateAll(DMNRuntimeImpl.java:123)
>   at org.kie.dmn.core.DMNRuntimeTypeCheckTest.testMisleadingNPEbyAPIusage(DMNRuntimeTypeCheckTest.java:199)
> ...
> {code}



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


More information about the jboss-jira mailing list