[ 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
