You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/06/16 10:43:56 UTC

DO NOT REPLY [Bug 20801] New: - AXIS doesn't invoke handleFault when SOAPFaultException is thrown

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20801>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20801

AXIS doesn't invoke handleFault when SOAPFaultException is thrown

           Summary: AXIS doesn't invoke handleFault when SOAPFaultException
                    is thrown
           Product: Axis
           Version: current (nightly)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@ws.apache.org
        ReportedBy: kimuratsy@nttdata.co.jp
                CC: kimuratsy@nttdata.co.jp


JAX-RPC spec 1.0 says "Throw the javax.xml.rcp.soap.SOAPFaultException
to indicate a SOAP fault.  ..., the HandlerChain terminates the further
processing of the request handlers in this handler chain and invokes
the handleFault method on the HandlerChain with the SOAP message context."
However, the current impl of HandlerChain is;

  package org.apache.axis.handlers;
  :
  public class HandlerChainImpl extends ArrayList
    implements javax.xml.rpc.handler.HandlerChain {
  :
    public boolean handleRequest(MessageContext _context) {
        SOAPMessageContext context = (SOAPMessageContext) _context;

        falseIndex = -1;
        for (int i = 0; i < size(); i++) {
            Handler currentHandler = getHandlerInstance(i);
            try {
                if (currentHandler.handleRequest(context) == false) {
                    falseIndex = i;
                    return false;
                }
            } catch (SOAPFaultException sfe) {
                throw sfe;
            }
        }
        return true;
    }

It doesn't invoke handleFault when SOAPFaultException is thrown.

Best Regards,

   Toshi (Toshiyuki Kimura) <ki...@nttdata.co.jp>
   R&D Headquarters
   NTT DATA Corporation