IBM Support

PM02610: RUNTIMEEXCEPTION THROWN FOR REGULAR EXPRESSIONS USING CHARACTER CLASS SUBTRACTION.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The evaluation of a stylesheet containing regular expressions
    that use character class subtraction may result in a
    RuntimeException being thrown.
    
    StackTrace segment:
    -------------------
    
    java.lang.RuntimeException: [ERR 0538][ERR FORX0002] The
    regular expression is invalid.
    at com.ibm.xtq.xslt.runtime.v2.BasisLibrary2.
    runTimeError(BasisLibrary2.java:273)
    at com.ibm.xtq.xslt.runtime.v2.BasisLibrary2.
    matchesF(BasisLibrary2.java:435)
    at sun.reflect.NativeMethodAccessorImpl.
    invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.
    invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.
    invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:618)
    at com.ibm.xylem.instructions.
    StaticMethodInvocationInstruction.
    evaluate(StaticMethodInvocationInstruction.java:258)
    ...
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of the IBM WebSphere Application  *
    *                  Server v7.0 Feature Pack for XML 1.0.       *
    ****************************************************************
    * PROBLEM DESCRIPTION: RuntimeException may be thrown during   *
    *                      stylesheet evaluation if regular        *
    *                      expressions containing char class       *
    *                      subtraction are used.                   *
    ****************************************************************
    * RECOMMENDATION:  Install a fix pack that contains this APAR. *
    ****************************************************************
    While evaluating a stylesheet containing regular expressions
    which use character class subtraction (for example,
    "[A-Z-[IO]]") a RuntimeException may be thrown:
    
    java.lang.RuntimeException: java.lang.RuntimeException: [ERR
    0538][ERR FORX0002] The regular expression is invalid.
           at
    com.ibm.xylem.instructions.StaticMethodInvocationInstruction.eva
    luate(StaticMethodInvocationInstruction.java:282)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:320)
           at
    com.ibm.xylem.instructions.ModuleFunctionCallInstruction.evaluat
    e(ModuleFunctionCallInstruction.java:227)
           at
    com.ibm.xylem.instructions.ModuleFunctionCallInstruction.evaluat
    e(ModuleFunctionCallInstruction.java:249)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.nodeconstructors.CreateEleme
    ntInstruction.evaluate(CreateElementInstruction.java:404)
           at
    com.ibm.xylem.instructions.OnceInstruction.evaluate(OnceInstruct
    ion.java:186)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.ConstructXDMItemNodeInst
    ruction.evaluate(ConstructXDMItemNodeInstruction.java:158)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.nodeconstructors.CreateEleme
    ntInstruction.evaluate(CreateElementInstruction.java:404)
           at
    com.ibm.xtq.xslt.xylem.instructions.nodeconstructors.CreateEleme
    ntInstruction.evaluate(CreateElementInstruction.java:326)
           at
    com.ibm.xtq.xslt.xylem.instructions.nodeconstructors.CreateEleme
    ntInstruction.evaluate(CreateElementInstruction.java:409)
           at
    com.ibm.xylem.instructions.OnceInstruction.evaluate(OnceInstruct
    ion.java:186)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.ConstructXDMItemNodeInst
    ruction.evaluate(ConstructXDMItemNodeInstruction.java:158)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.XDMSequenceInstruction.e
    valuate(XDMSequenceInstruction.java:511)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:358)
           at
    com.ibm.xylem.instructions.FunctionCallInstruction.evaluate(Func
    tionCallInstruction.java:737)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:527)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:358)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:527)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:358)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.ForEachXDMSequenceInstru
    ction.evaluate(ForEachXDMSequenceInstruction.java:217)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:358)
           at
    com.ibm.xylem.instructions.FunctionCallInstruction.evaluate(Func
    tionCallInstruction.java:737)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:527)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:534)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:534)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:534)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:358)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.ForEachXDMSequenceInstru
    ction.evaluate(ForEachXDMSequenceInstruction.java:217)
           at
    com.ibm.xtq.xslt.xylem.instructions.xdm.ForEachXDMSequenceInstru
    ction.evaluate(ForEachXDMSequenceInstruction.java:186)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:326)
           at
    com.ibm.xylem.instructions.FunctionCallInstruction.evaluate(Func
    tionCallInstruction.java:680)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:504)
           at
    com.ibm.xylem.instructions.ChooseInstruction.evaluate(ChooseInst
    ruction.java:510)
           at
    com.ibm.xylem.instructions.LetBaseInstruction.evaluate(LetBaseIn
    struction.java:326)
           at
    com.ibm.xtq.xslt.runtime.InterpretedTranslet.doEvaluate(Interpre
    tedTranslet.java:132)
           at
    com.ibm.xtq.xslt.runtime.AbstractTranslet.evaluate(AbstractTrans
    let.java:916)
           at
    com.ibm.xtq.xslt.drivers.XSLTExecutable.execute(XSLTExecutable.j
    ava:134)
           at
    com.ibm.xtq.xslt.drivers.XSLTExecutable.execute(XSLTExecutable.j
    ava:87)
           ... 9 more
    Caused by: java.lang.RuntimeException: [ERR 0538][ERR FORX0002]
    The regular expression is invalid.
           at
    com.ibm.xtq.xslt.runtime.v2.BasisLibrary2.runTimeError(BasisLibr
    ary2.java:273)
           at
    com.ibm.xtq.xslt.runtime.v2.BasisLibrary2.matchesF(BasisLibrary2
    .java:435)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method)
           at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor
    Impl.java:79)
           at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:618)
           at
    com.ibm.xylem.instructions.StaticMethodInvocationInstruction.eva
    luate(StaticMethodInvocationInstruction.java:258)
           ... 52 more
    

Problem conclusion

  • The regular expression language defined for XQuery 1.0 and
    XPath 2.0 requires that implementations support character
    class subtraction. The support in the regular expression
    library was not being exposed to the XSLT processor which
    caused it to report that regular expressions using this
    feature are invalid. This was fixed by activating the support
    for character class subtraction in the regular expression
    library.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 1.0.0.1. Please refer to the Recommended Updates
    page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM02610

  • Reported component name

    XML FEATUREPACK

  • Reported component ID

    5724J0856

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-12-02

  • Closed date

    2009-12-09

  • Last modified date

    2009-12-09

  • 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

    XML FEATUREPACK

  • Fixed component ID

    5724J0856

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SUPPORT","label":"IBM Worldwide Support"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
09 February 2022