IBM Support

RS03853: ERROR DURING DE RULESET GENERATION WHEN USING A FUNCTION RETURNING A NUMBER

 

APAR status

  • Closed as program error.

Error description

  • When using a number function in the rules an error is thrown
    during ruleset generation because a cast to double is applied on
    the return of the function.
    
    
    ilog.rules.teamserver.brm.builder.IlrBuildException:
    com.ibm.rules.engine.bytecode.asm.coding.ErrorCodingException:
    Could not cast ((com.ibm.rules.generated.EngineDataClass)this#c
    om.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine#.getEngin
    eData()).test_Util_getNumber_java_lang_String(this#com.ibm.rule
    s.generated.ruleflow.rf1$003ep1.FASTEngine#.engineData.myVar)to
    s#com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine#.getEn
    gineData()).test_Util_getNumber_java_lang_String(this#com.ibm.r
    ules.generated.ruleflow.rf1$003ep1.FASTEngine#.engineData.myVar
    ))
    in com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.condi
    tion()
    public void condition(){
     try {
       if ([((double)0),((double)((($EngineData)com.ibm.rules.gener
    ated.ruleflow.rf1$003ep1.FASTEngine.this.getEngineData())).test
    _Util_getNumber_java_lang_String(com.ibm.rules.generated.rulefl
    ow.rf1$003ep1.FASTEngine.this.engineData.myVar))[.contains((dou
    ble)com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.this
    .engineData.myVar.length())){
         com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.thi
    s.addInstance("p1.a1",0);
       }
    
    
     }
     catch (com.ibm.rules.engine.util.EngineExecutionException
    engineException){
       throw engineException;
     }
     catch (java.lang.Exception exc){
       com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.this.
    handleExceptionRaisedInCondition(exc,com.ibm.rules.generated.rul
    Location());
     }
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Using a number function in the rules.                        *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * When using a number function in the rules an error is thrown *
    * during ruleset generation because a cast to double is        *
    * applied on                                                   *
    * the return of the function.                                  *
    *                                                              *
    *                                                              *
    * ilog.rules.teamserver.brm.builder.IlrBuildException:         *
    * com.ibm.rules.engine.bytecode.asm.coding.ErrorCodingExceptio *
    * n:                                                           *
    * Could not cast                                               *
    * ((com.ibm.rules.generated.EngineDataClass)this#c             *
    * om.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine#.getEn *
    * gin                                                          *
    * eData()).test_Util_getNumber_java_lang_String(this#com.ibm.r *
    * ule                                                          *
    * s.generated.ruleflow.rf1$003ep1.FASTEngine#.engineData.myVar *
    * )to                                                          *
    * s#com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine#.ge *
    * tEn                                                          *
    * gineData()).test_Util_getNumber_java_lang_String(this#com.ib *
    * m.r                                                          *
    * ules.generated.ruleflow.rf1$003ep1.FASTEngine#.engineData.my *
    * Var                                                          *
    * ))                                                           *
    * in                                                           *
    * com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.condi *
    * tion()                                                       *
    * public void condition(){                                     *
    *  try {                                                       *
    *    if                                                        *
    * ([((double)0),((double)((($EngineData)com.ibm.rules.gener    *
    * ated.ruleflow.rf1$003ep1.FASTEngine.this.getEngineData())).t *
    * est                                                          *
    * _Util_getNumber_java_lang_String(com.ibm.rules.generated.rul *
    * efl                                                          *
    * ow.rf1$003ep1.FASTEngine.this.engineData.myVar))[.contains(( *
    * dou                                                          *
    * ble)com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.t *
    * his                                                          *
    * .engineData.myVar.length())){                                *
    *                                                              *
    * com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.thi   *
    * s.addInstance("p1.a1",0);                                    *
    *    }                                                         *
    *                                                              *
    *                                                              *
    *  }                                                           *
    *  catch (com.ibm.rules.engine.util.EngineExecutionException   *
    * engineException){                                            *
    *    throw engineException;                                    *
    *  }                                                           *
    *  catch (java.lang.Exception exc){                            *
    *                                                              *
    * com.ibm.rules.generated.ruleflow.rf1$003ep1.FASTEngine.this. *
    * handleExceptionRaisedInCondition(exc,com.ibm.rules.generated *
    * .rul                                                         *
    * Location());                                                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    

Problem conclusion

  • The code is fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    RS03853

  • Reported component name

    WDS FOR RULES

  • Reported component ID

    5725B6903

  • Reported release

    892

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-10-05

  • Closed date

    2021-10-06

  • Last modified date

    2021-10-06

  • 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":"892"}]

Document Information

Modified date:
21 September 2023