[ 
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

Reply via email to