RS01143: NPE DURING RULESET PARSING USING FASTPATH OR SEQUENTIAL ALGORITHM IF A RULE IS USING LIST OF ENUMS

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • An NPE exception is thrown during ruleset parsing.
    
    Exception in thread "main" java.lang.NullPointerException
           at ilog.jit.lang.IlxJITInvokeExpr.getType(Unknown Source)
           at ilog.jit.coding.IlxJITStatCoder.visit(Unknown Source)
           at ilog.jit.lang.IlxJITReturnStat.accept(Unknown Source)
     ..
           at
    ilog.rules.engine.sequential.platform.IlrSEQTaskFactory.a(Unknow
    n Source)
           at
    ilog.rules.engine.sequential.platform.IlrSEQTaskFactory.newTaskI
    mpl(Unknown Source)
           at ilog.rules.engine.IlrRuleset$4.run(Unknown Source)
           at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:202)
           at ilog.rules.engine.IlrRuleset.generateTaskImpl(Unknown
    Source)
           at ilog.rules.engine.IlrRuleset$3.run(Unknown Source)
    ..
           at ilog.rules.engine.IlrRuleset.a(Unknown Source)
           at ilog.rules.engine.IlrRulesetArchiveParser.for(Unknown
    Source)
    ..
           at
    ilog.rules.engine.IlrRulesetArchiveParser.parseArchive(Unknown
    Source)
           at
    SimpleRuleEngineRunner.main(SimpleRuleEngineRunner.java:36)
    
    The rule task algorithm is defined as Fastpath. Problem also
    exist in Sequential
    The issue is due to a certain rule binding:  when a variable is
    bind to an Enum and then in the "if" section, one checks whether
    this variable is one of the object in a list of another class.
    An example of such rule is as follows:-
    
    definitions
        set 'record' to a record in the records of 'the application'
    ;
        set 'my history details' to a history detail  in the hists
    of record ;
        set 'my code' to an enum code modificator in the code
    modificators of 'my history details' ;
        set 'info' to an additional info ;
    
    if
      'my code' is one of the code modificators of info
    then
       print "test";
    

Local fix

  • 1) Use Rete
    2) The issue occurs in a rule statement where one looks
    for an <enum> in a list of <enum>.
    In order to avoid the problem the <enum> object should be
    looked into an array of <enum>
    Converting  the method returning a list of Enum into an method
    returning an array can be done at the B2X level.
    - Change the type of this BOM method to the array of the <enum>
    ( xom.MyEnum[ )]
    In it's b2x  return the array of the <enum> instead of
    List.
    return (xom.MyEnum[])this.getMyBOMMember().toArray(new
    xom.MyEnum[this.getMyBOMMember().size()]);
    

Problem summary

  • the code generating the executable  code corresponding to teh
    condition does not handle a list of enum
    

Problem conclusion

  • The code is modified so that list of enums are generated
    properly
    

Temporary fix

Comments

APAR Information

  • APAR number

    RS01143

  • Reported component name

    WS ILOG RTS

  • Reported component ID

    5724Y0000

  • Reported release

    711

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-10-25

  • Closed date

    2012-10-26

  • Last modified date

    2012-10-26

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

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

Modules/Macros

  • None
    999
    

Fix information

  • Fixed component name

    WS ILOG RTS

  • Fixed component ID

    5724Y0000

Applicable component levels

  • R711 PSY

       UP



Rate this page:

(0 users)Average rating

Document information


More support for:

WebSphere ILOG Rule Team Server

Software version:

7.1.1

Reference #:

RS01143

Modified date:

2012-10-26

Translate my page

Machine Translation

Content navigation