IBM Support

RS02983: NULLPOINTEREXCEPTION IN SEMVARIABLECOPIERWITHSCOPE. TRANSFORMVARIABLEVALUE(SEMVARIABLECOPIERWITHSCOPE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • !ENTRY ilog.rules.studio.shared 4 0 2017-10-26 08:59:33.697
    !MESSAGE An error occurred during the export of the ruleset
    archive.
    !STACK 0
    com.ibm.rules.container.EngineOutlineSerializationException:
    java.lang.NullPointerException
        at com.ibm.rules.container.EnginePackageOpenXMLProducer.
    writeJar(EnginePackageOpenXMLProducer.java:246)
        at com.ibm.rules.container.EnginePackageOpenXMLProducer.
    writeJar(EnginePackageOpenXMLProducer.java:254)
        at com.ibm.rules.container.EngineOutlineSerializer.writeJar(
    EngineOutlineSerializer.java:46)
        at com.ibm.rules.studio.rve.builder.
    RVERulesetArchiveExporter.serializeEngineOutline(
    RVERulesetArchiveExporter.java:692)
        at com.ibm.rules.studio.rve.builder.
    RVERulesetArchiveExporter.export(RVERulesetArchiveExporter.java:
    395)
        at com.ibm.rules.studio.decisionservice.
    SDsRVERulesetArchiveExporter.export(
    SDsRVERulesetArchiveExporter.java:134)
        at ilog.rules.studio.model.archive.internal.
    RulesetArchiveExportJob.run(RulesetArchiveExportJob.java:65)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    Caused by: java.lang.NullPointerException
        at com.ibm.rules.engine.bytecode.scalability.
    SemVariableCopierWithScope.transformVariableValue(
    SemVariableCopierWithScope.java:157)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformVariableValue(
    SemMainLangTransformer.java:647)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformVariableValue(BaseTransformer.java:
    378)
        at com.ibm.rules.engine.lang.semantics.transform.value.
    SemValueCopier.visit(SemValueCopier.java:134)
        at com.ibm.rules.engine.lang.semantics.transform.value.
    SemValueCopier.visit(SemValueCopier.java:39)
        at com.ibm.rules.engine.lang.semantics.SemVariableValue.
    accept(SemVariableValue.java:55)
        at com.ibm.rules.engine.lang.semantics.transform.value.
    SemValueCopier.transformValue(SemValueCopier.java:55)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformValue(SemMainLangTransformer.
    java:741)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformValues(SemMainLangTransformer.
    java:957)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformValues(BaseTransformer.java:503)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMethodCopier.transformMethodInvocation(SemMethodCopier.java:
    229)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMethodCopier.transformMethodStatement(SemMethodCopier.java:
    261)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMethodStatement(
    SemMainLangTransformer.java:513)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformMethodStatement(BaseTransformer.
    java:269)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:118)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:39)
        at com.ibm.rules.engine.lang.semantics.SemMethodInvocation.
    accept(SemMethodInvocation.java:97)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformStatement(SemStatementCopier.java:
    70)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatement(
    SemMainLangTransformer.java:676)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatements(
    SemMainLangTransformer.java:873)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformStatements(BaseTransformer.java:
    460)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformBlock(SemStatementCopier.java:95)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformBlock(SemMainLangTransformer.
    java:694)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformBlock(BaseTransformer.java:399)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformCase(SemStatementCopier.java:284)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformCases(SemStatementCopier.java:272)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:252)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.visit(SemStatementCopier.java:39)
        at com.ibm.rules.engine.lang.semantics.SemSwitch.accept(
    SemSwitch.java:40)
        at com.ibm.rules.engine.lang.semantics.transform.statement.
    SemStatementCopier.transformStatement(SemStatementCopier.java:
    70)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatement(
    SemMainLangTransformer.java:676)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformStatements(
    SemMainLangTransformer.java:873)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformStatements(BaseTransformer.java:
    460)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.visit(
    SemMemberImplementationCopier.java:167)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.visit(
    SemMemberImplementationCopier.java:41)
        at com.ibm.rules.engine.lang.semantics.SemMethod$
    DynamicImplementation.accept(SemMethod.java:49)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMemberImplementationCopier.transformMemberImplementation(
    SemMemberImplementationCopier.java:65)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberImplementation(
    SemMainLangTransformer.java:597)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformMemberImplementation(
    BaseTransformer.java:346)
        at com.ibm.rules.engine.lang.semantics.transform.member.
    SemMethodCopier.transformMethodBody(SemMethodCopier.java:178)
        at com.ibm.rules.engine.bytecode.scalability.
    SemMethodCopierWithScope.transformMethodBody(
    SemMethodCopierWithScope.java:41)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMethodBody(
    SemMainLangTransformer.java:485)
        at com.ibm.rules.engine.lang.semantics.transform.
    BaseTransformer.mainTransformMethodBody(BaseTransformer.java:
    246)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMethodBodies(SemClassCopier.java:256)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMemberBodies(SemClassCopier.java:151)
        at com.ibm.rules.engine.lang.semantics.transform.type.
    SemClassCopier.transformMemberBodies(SemClassCopier.java:138)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberBodies(
    SemMainLangTransformer.java:313)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformMemberBodies(
    SemMainLangTransformer.java:267)
        at com.ibm.rules.engine.lang.semantics.transform.
    SemMainLangTransformer.transformObjectModel(
    SemMainLangTransformer.java:242)
        at com.ibm.rules.engine.bytecode.scalability.classfile.
    ClassFileTransformer.transform(ClassFileTransformer.java:31)
        at com.ibm.rules.engine.bytecode.scalability.
    ScalabilityTransformers.applyScalabilityTransformers(
    ScalabilityTransformers.java:62)
        at com.ibm.rules.engine.bytecode.scalability.
    ScalabilityTransformers.transform(ScalabilityTransformers.java:
    36)
        at com.ibm.rules.engine.bytecode.SemJitter.buildModel(
    SemJitter.java:88)
        at com.ibm.rules.engine.bytecode.SemJitter.
    generateJarInStream(SemJitter.java:180)
        at com.ibm.rules.engine.outline.EngineOutlineImpl.
    writeJarInStream(EngineOutlineImpl.java:502)
        at com.ibm.rules.container.EnginePackageOpenXMLProducer.
    writeJar(EnginePackageOpenXMLProducer.java:241)
        ... 7 more
    

Local fix

  • rewrite the definition of the rule that is failing using a
    binding to cast the parameter in a specific type
    set  v to a number from param
    

Problem summary

  • In Rule Designer when exporting a ruleset the following
    exception occurs. This is caused by incorrect handling of
    variables in swith transformations.
    com.ibm.rules.container.EngineOutlineSerializationException:
    java.lang.NullPointerException
        at
    com.ibm.rules.container.EnginePackageOpenXMLProducer.writeJar(En
    ginePackageOpenXMLProducer.java:246)
        at
    com.ibm.rules.container.EnginePackageOpenXMLProducer.writeJar(En
    ginePackageOpenXMLProducer.java:254)
        at
    com.ibm.rules.container.EngineOutlineSerializer.writeJar(EngineO
    utlineSerializer.java:46)
        at
    com.ibm.rules.studio.rve.builder.RVERulesetArchiveExporter.seria
    lizeEngineOutline(RVERulesetArchiveExporter.java:692)
        at
    com.ibm.rules.studio.rve.builder.RVERulesetArchiveExporter.expor
    t(RVERulesetArchiveExporter.java:395)
        at
    com.ibm.rules.studio.decisionservice.SDsRVERulesetArchiveExporte
    r.export(SDsRVERulesetArchiveExporter.java:134)
        at
    ilog.rules.studio.model.archive.internal.RulesetArchiveExportJob
    .run(RulesetArchiveExportJob.java:65)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
    Caused by: java.lang.NullPointerException
        at
    com.ibm.rules.engine.bytecode.scalability.SemVariableCopierWithS
    cope.transformVariableValue(SemVariableCopierWithScope.java:157)
        at
    com.ibm.rules.engine.lang.semantics.transform.SemMainLangTransfo
    rmer.transformVariableValue(SemMainLangTransformer.java:647)
        at
    com.ibm.rules.engine.lang.semantics.transform.BaseTransformer.ma
    inTransformVariableValue(BaseTransformer.java:378)
        at
    com.ibm.rules.engine.lang.semantics.transform.value.SemValueCopi
    er.visit(SemValueCopier.java:
    

Problem conclusion

  • The code is fixed.
    

Temporary fix

  • rewrite the definition of the rule that is failing using a
    binding to cast the parameter in a specific type
    'set  v to a number from param'
    

Comments

APAR Information

  • APAR number

    RS02983

  • Reported component name

    WDS FOR RULES

  • Reported component ID

    5725B6903

  • Reported release

    890

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-01-10

  • Closed date

    2018-01-19

  • Last modified date

    2018-01-19

  • 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

  • R890 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":"890","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 February 2022