Skip to main content

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

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

WebSphere ILOG Rule Team Server


Software version:
7.1.1


Reference #:
RS01143


Modified date:
2012-10-26

Translate my page

Content navigation