IBM Support

RS01153: HTDS: SOAP REQUEST WITH MALFORMED XML LEADS TO NPE FOR ALL SUBSEQUENT REQUESTS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When invoking a ruleset via HTDS, where the ruleset uses a
    dynamic XOM (XSD-based only), sending a SOAP request with
    malformed XML twice causes all subsequent HTDS requests to fail
    with a NullPointerException, even if invoking a different
    ruleset.
    
    Here is an example of such a request:
    
    <soapenv:Envelope  ... >
      <soapenv:Header/>
      <soapenv:Body>
        <tes:TestXsdRulesetRequest>
          <tes:DecisionID>?</tes:DecisionID>
          <par:customer>
            <!-- <cus:customer> -->
              <name>john</name>
              ....
            </cus:customer>
          </par:customer>
        </tes:TestXsdRulesetRequest>
      </soapenv:Body>
    </soapenv:Envelope>
    
    When sent the first time, the SOAP response contains the
    expected exception:
    
      ...
    Caused by: org.xml.sax.SAXParseException: The element type
    "par:customer" must be terminated by the matching end-tag
    "&lt;/par:customer>".
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
    Source)
      at
    ilog.rules.res.decisionservice.web.IlrWebServiceServlet.extractI
    nParameters(IlrWebServiceServlet.java:92)
      ... 25 more
    
    However, upon submitting the same malformed request a second
    time, the following stack trace is returned as part of the
    response:
    
      ...
    Caused by: java.lang.NullPointerException
      at
    org.apache.xalan.transformer.TransformerIdentityImpl.createResul
    tContentHandler(TransformerIdentityImpl.java:301)
      at
    org.apache.xalan.transformer.TransformerIdentityImpl.flushStartD
    oc(TransformerIdentityImpl.java:933)
      at
    org.apache.xalan.transformer.TransformerIdentityImpl.startPrefix
    Mapping(TransformerIdentityImpl.java:983)
      at
    com.ibm.rules.htds.HTDSContentHandler.startPrefixMapping(HTDSCon
    tentHandler.java:271)
      at
    org.apache.xerces.parsers.AbstractSAXParser.startNamespaceMappin
    g(Unknown Source)
      at
    org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
    Source)
      at
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement
    (Unknown Source)
      at
    org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatc
    her.scanRootElementHook(Unknown Source)
      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentCo
    ntentDispatcher.dispatch(Unknown Source)
      at
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocume
    nt(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
    Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
    Source)
      at
    ilog.rules.res.decisionservice.web.IlrWebServiceServlet.extractI
    nParameters(IlrWebServiceServlet.java:92)
      ... 25 more
    
    This same exception will then be raised on every subsequent
    request, even perfectly valid ones, including valid requests for
    any other ruleset.
    The only way to have HTDS work again is to restart the HTDS
    enterprise application from the server's administration console,
    or to restart the server.
    

Local fix

  • Restart the HTDS application or the application server
    

Problem summary

  • in case of errors the context of the execution is not properly
    cleared and the following executions reuses this same context
    containing the error.
    

Problem conclusion

  • The code is modified to reset the context in any scenario
    

Temporary fix

Comments

APAR Information

  • APAR number

    RS01153

  • Reported component name

    WS DECISION SVR

  • Reported component ID

    5725B6901

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-11-06

  • Closed date

    2012-11-09

  • Last modified date

    2012-11-09

  • 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 DECISION SVR

  • Fixed component ID

    5725B6901

Applicable component levels

  • R801 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":"8.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
09 February 2022