IBM Support

RS01915: NULLPOINTEREXCEPTION WHEN DEBUGGING A RULESET WITH THE DECISION ENGINE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Loading a DE ruleset in debug mode throws the following
    exception:
    Caused by: java.lang.NullPointerException: Variable type is
    null
        at com.ibm.rules.engine.lang.semantics.
    SemLocalVariableDeclaration.<init>(SemLocalVariableDeclaration.
    java:68)
        at com.ibm.rules.engine.lang.semantics.
    SemLanguageFactoryImpl.declareVariable(SemLanguageFactoryImpl.
    java:487)
        at com.ibm.rules.engine.lang.semantics.
    SemLanguageFactoryImpl.declareVariable(SemLanguageFactoryImpl.
    java:478)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.visit(SemDebugStatementTransformer.
    
    java:205)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.visit(SemDebugStatementTransformer.
    
    java:49)
        at com.ibm.rules.engine.lang.semantics.SemReturn.accept(
    SemReturn.java:57)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformStatement(SemStatementCopier.java:
    88)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.transformSelectedNotifiedStatement(
    
    SemDebugStatementTransformer.java:85)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.transformStatement(
    SemDebugStatementTransformer.java:181)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatement(
    SemMainLangTransformer.java:610)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatements(
    SemMainLangTransformer.java:758)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformStatements(BaseTransformer.java:
    472)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformBlock(SemStatementCopier.java:113)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformBlock(SemMainLangTransformer.
    java:628)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformBlock(BaseTransformer.java:412)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:251)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:57)
        at com.ibm.rules.engine.lang.semantics.SemIf.accept(SemIf.
    java:74)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformStatement(SemStatementCopier.java:
    88)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.transformSelectedNotifiedStatement(
    
    SemDebugStatementTransformer.java:85)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugStatementTransformer.transformStatement(
    SemDebugStatementTransformer.java:181)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatement(
    SemMainLangTransformer.java:610)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatements(
    SemMainLangTransformer.java:758)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformStatements(BaseTransformer.java:
    472)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.visit(
    SemMemberImplementationCopier.java:182)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.visit(
    SemMemberImplementationCopier.java:56)
        at com.ibm.rules.engine.lang.semantics.SemMethod$
    DynamicImplementation.accept(SemMethod.java:62)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.transformMemberImplementation(
    SemMemberImplementationCopier.java:80)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberImplementation(
    SemMainLangTransformer.java:547)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformMemberImplementation(
    BaseTransformer.java:359)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMethodCopier.transformMethodBody(SemMethodCopier.java:178)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugMethodTransformer.transformMethodBody(
    SemDebugMethodTransformer.java:60)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMethodBody(
    SemMainLangTransformer.java:447)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformMethodBody(BaseTransformer.java:
    259)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMethodBodies(SemClassCopier.java:271)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMemberBodies(SemClassCopier.java:166)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMemberBodies(SemClassCopier.java:153)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugTypeTransformer.transformMemberBodies(
    SemDebugTypeTransformer.java:69)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberBodies(
    SemMainLangTransformer.java:311)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberBodies(
    SemMainLangTransformer.java:272)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformObjectModel(
    SemMainLangTransformer.java:247)
        at com.ibm.rules.engine.transform.debug.impl.
    SemDebugMainLangTransformer.transformObjectModel(
    SemDebugMainLangTransformer.java:61)
        at com.ibm.rules.engine.transform.debug.impl.
    SemLocationModelRewriter.transform(SemLocationModelRewriter.
    java:58)
        at com.ibm.rules.engine.outline.EngineOutlineImpl.
    applyModelRewriter(EngineOutlineImpl.java:444)
        at com.ibm.rules.engine.outline.EngineOutlineImpl.
    applyModelRewriters(EngineOutlineImpl.java:415)
        at com.ibm.rules.engine.outline.EngineOutlineImpl.
    writeJarInStream(EngineOutlineImpl.java:516)
        at com.ibm.rules.engine.load.XUEngineLoader.
    createEngineDefinitionInDebugFromDSAR(XUEngineLoader.java:217)
    

Local fix

  • The engine does not handle properly null value returned in a
    block in a  b2x method. In order to avoid the problem use and
    intermediary variable.
    Instead of return null;    use
    Object obj = null; return obj;
    

Problem summary

  • Incorrect rule code generation for  null value.
    

Problem conclusion

  • The code is fixed
    

Temporary fix

Comments

APAR Information

  • APAR number

    RS01915

  • Reported component name

    WDS FOR RULES

  • Reported component ID

    5725B6903

  • Reported release

    870

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-02-26

  • Closed date

    2015-03-07

  • Last modified date

    2015-03-07

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  • 999
    

Fix information

  • Fixed component name

    WDS FOR RULES

  • Fixed component ID

    5725B6903

Applicable component levels

  • R870 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSQP76","label":"IBM Operational Decision Manager"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"870","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 February 2022