beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eddie O'Neil (JIRA)" <beehive-...@incubator.apache.org>
Subject [jira] Commented: (BEEHIVE-717) minor non-conformance of exceptions to JSR-181 / JAX-RPC 1.1
Date Tue, 07 Jun 2005 02:06:46 GMT
    [ http://issues.apache.org/jira/browse/BEEHIVE-717?page=comments#action_12312826 ] 

Eddie O'Neil commented on BEEHIVE-717:
--------------------------------------

Daryoush -- Hey; thanks for the patch!  A couple of comments:

- the AxisFaultAdaptor seems to be missing the ASF copyright / license header.  Could you
add it?

- just curious, but why do we need to override the RPCProvider.invoke(MessageContext) method?
 This just wraps the super call with error handling; does that imply that we're throwing the
wrong type of exceptions out of ControlProvider.makeNewServiceObject(...) and that we should
be throwing AxisFault?  Guess I'm asking if the ControlProvider needs to be rewritten to throw
an AxisFault since we're just using AxisFaultAdapter to handle errors from the ControlProvider.

- in the ControlProvider.invoke(...) method, why is the original AxisFault not thrown?  The
original exception is often useful when diagnosing errors (though I'm likely just missing
some subtelty of the AxisFault infrastructure).  :)  

- even if an AxisFaultAdapter is serialized, wouldn't the AxisFaultAdapter.writeDetails(...)
method still throw an NPE because the MessageContext is null at this line:

  fd = msgContext.getOperation().getFaultByClass(origExp.getClass());

- could the two class-level fields in AxisFaultAdapter be private?

Also, feel free to use JDK 1.4 asserts liberally -- this tends to document the developer's
expectations of the code at runtime.  For example, from AxisFaultAdapter.writeDetails(...)
this:

fd = msgContext.getOperation().getFaultByClass(origExp.getClass());
ArrayList parameters = fd.getParameters();

could become this:

fd = msgContext.getOperation().getFaultByClass(origExp.getClass());
assert fd != null : "Encountered null FaultDesc";
ArrayList parameters = fd.getParameters();

> minor non-conformance of exceptions to JSR-181 / JAX-RPC 1.1
> ------------------------------------------------------------
>
>          Key: BEEHIVE-717
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-717
>      Project: Beehive
>         Type: Bug
>   Components: Web Services (181)
>     Versions: V1Beta
>  Environment: Beehive SVN 169852
>     Reporter: Jeremiah Johnson
>     Assignee: daryoush mehrtash
>     Priority: Minor
>      Fix For: TBD
>  Attachments: BEEHIVE-133.tar.gz, BEEHIVE-133.wsdl, faultpatch.txt
>
> While testing BEEHIVE-133, we ran into an issue with user-defined Exceptions.  The example
provided in the JAX-RPC v1.1 spec shows the problem, so I will attach that as the repro. 
The WSDL looks accurate according to the JAX-RPC spec (which is referenced by JSR 181), but
the response message looks incorrect.
> I will attach the WSDL; the incorrect looking response is below:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>   <soapenv:Fault>
>    <faultcode>soapenv:Server.userException</faultcode>
>    <faultstring>web.InvalidTickerException</faultstring>
>    <detail>
>     <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">localhost.localdomain</ns1:hostname>
>    </detail>
>   </soapenv:Fault>
>  </soapenv:Body>
> </soapenv:Envelope>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message