IBM Support

RS03821: NULLPOINTEREXCEPTION BUILDING RULEPROJECT THAT HAVE GENERIC CLASSES

 

APAR status

  • Closed as program error.

Error description

  • When generating a Ruleset archive in Rule Designer, there is a
    NullPointerException thrown due to the declaration of this kind
    of methods:
    
    public void method(E<? extends C<?, ?>> param)
    with a generic class C declared as  public class C<T extends
    D<T, S>, S>
    
    
    The following stacktrace could be found in the log
    
    !ENTRY ilog.rules.studio.shared
    !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.writeJa
    r(EnginePackageOpenXMLProducer.java:269)
    at com.ibm.rules.container.EnginePackageOpenXMLProducer.writeJa
    r(EnginePackageOpenXMLProducer.java:277)
    at com.ibm.rules.container.EngineOutlineSerializer.writeJar(Eng
    ineOutlineSerializer.java:48)
    at com.ibm.rules.studio.rve.builder.RVERulesetArchiveExporter.s
    erializeEngineOutline(RVERulesetArchiveExporter.java:743)
    at com.ibm.rules.studio.rve.builder.RVERulesetArchiveExporter.e
    xport(RVERulesetArchiveExporter.java:432)
    at com.ibm.rules.studio.decisionservice.SDsRVERulesetArchiveExp
    orter.export(SDsRVERulesetArchiveExporter.java:134)
    at ilog.rules.studio.model.archive.internal.RulesetArchiveExpor
    tJob.run(RulesetArchiveExportJob.java:65)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
    Caused by: java.lang.NullPointerException
    at com.ibm.rules.engine.lang.semantics.util.generics.SemGeneric
    Parameters.hashCode(SemGenericParameters.java:74)
    at java.util.HashMap.hash(HashMap.java:350)
    at java.util.HashMap.get(HashMap.java:568)
    at com.ibm.rules.engine.lang.semantics.impl.GenericInstanceStor
    e.getInstance(GenericInstanceStore.java:143)
    at com.ibm.rules.engine.lang.semantics.impl.GenericInstanceStor
    e.getInstance(GenericInstanceStore.java:139)
    at com.ibm.rules.engine.lang.semantics.impl.SemNativeGenericCla
    ssImpl.bindGenericParameters(SemNativeGenericClassImpl.java:123)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.mapNativeType(SemJava5GenericBinding.java:253)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.bindTypeVariable(SemJava5GenericBinding.java:358)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.getNativeGenericClass(SemJava5GenericBinding.java:111)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.mapNativeType(SemJava5GenericBinding.java:251)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.mapWildcardType(SemJava5GenericBinding.java:300)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.mapNativeType(SemJava5GenericBinding.java:264)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5GenericBind
    ing.mapNativeType(SemJava5GenericBinding.java:249)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5Binding.map
    Parameters(SemJava5Binding.java:581)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5Binding.cre
    ateMethod(SemJava5Binding.java:555)
    at com.ibm.rules.engine.lang.semantics.java.SemJava5Binding.cre
    ateMethods(SemJava5Binding.java:422)
    at com.ibm.rules.engine.lang.semantics.impl.SemNativeClassImpl$
    NativeInfo.createMethods(SemNativeClassImpl.java:129)
    at com.ibm.rules.engine.lang.semantics.impl.SemNativeClassImpl.
    loadMethods(SemNativeClassImpl.java:240)
    at com.ibm.rules.engine.lang.semantics.impl.SemAbstractLazyLoad
    ingClass.getMethods(SemAbstractLazyLoadingClass.java:139)
    at com.ibm.rules.engine.lang.semantics.SemClassExtra.computeAll
    Methods(SemClassExtra.java:377)
    at com.ibm.rules.engine.lang.semantics.SemClassExtra.getAllMeth
    ods(SemClassExtra.java:324)
    at com.ibm.rules.engine.lang.semantics.SemClassExtra.getMatchin
    gMethods(SemClassExtra.java:529)
    at com.ibm.rules.engine.lang.semantics.SemClassExtra.getMatchin
    gMethod(SemClassExtra.java:483)
    at com.ibm.rules.engine.lang.semantics.SemClassExtra.getMatchin
    gMethod(SemClassExtra.java:477)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.getMethod(CkgMemberDeclarationChecker.java:978)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.lookForXOMMethod(CkgMemberDeclarationChecker.java:520)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.checkMethod(CkgMemberDeclarationChecker.java:750)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.visitMembers(CkgMemberDeclarationChecker.java:188)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.visit(CkgMemberDeclarationChecker.java:159)
    at com.ibm.rules.engine.b2x.checking.CkgMemberDeclarationChecke
    r.visit(CkgMemberDeclarationChecker.java:48)
    at com.ibm.rules.engine.lang.semantics.impl.SemClassImpl.accept
    (SemClassImpl.java:585)
    at com.ibm.rules.engine.b2x.checking.CkgB2XChecker.processMembe
    rDeclarations(CkgB2XChecker.java:225)
    at com.ibm.rules.engine.b2x.transform.B2XMainLangTransformer.tr
    ansformMemberDeclarations(B2XMainLangTransformer.java:135)
    at com.ibm.rules.engine.lang.semantics.transform.SemMainLangTra
    nsformer.transformObjectModel(SemMainLangTransformer.java:252)
    at com.ibm.rules.engine.outline.B2XModelTranslator$B2XRewriter.
    transform(B2XModelTranslator.java:355)
    at com.ibm.rules.engine.outline.EngineOutlineImpl.applyModelRew
    riters(EngineOutlineImpl.java:450)
    at com.ibm.rules.engine.outline.EngineOutlineImpl.applyModelRew
    riters(EngineOutlineImpl.java:425)
    at com.ibm.rules.engine.outline.EngineOutlineImpl.writeJarInStr
    eam(EngineOutlineImpl.java:543)
    at com.ibm.rules.container.EnginePackageOpenXMLProducer.writeJa
    r(EnginePackageOpenXMLProducer.java:262)
    ... 7 more
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Rule Designer users.                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * In some cases, generic generation throws                     *
    * nullpointerexception.                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • The code was fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    RS03821

  • Reported component name

    WDS FOR RULES

  • Reported component ID

    5725B6903

  • Reported release

    8A0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-07-15

  • Closed date

    2021-08-25

  • Last modified date

    2021-08-25

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

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

Fix information

  • Fixed component name

    WDS FOR RULES

  • Fixed component ID

    5725B6903

Applicable component levels

[{"Business Unit":{"code":"BU029","label":"Software"},"Product":{"code":"SS9TUK","label":"IBM Decision Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8A0"}]

Document Information

Modified date:
21 September 2023