[
https://issues.apache.org/jira/browse/AXIS2-4617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12849380#action_12849380
]
Andreas Veithen commented on AXIS2-4617:
----------------------------------------
No, SAAJ is an API specified by Sun and geronimo-saaj_1.3_spec-1.0.1.jar only
contains the interfaces. Axis2 has its own SAAJ implementation and if there is
an issue with the behavior of SOAPFault, then this needs to be fixed in Axis2.
What this really means is that instead of thinking about how we would like
SOAPFault to behave, we need to check what the SAAJ specs say or how the SAAJ
reference implementation behaves, and if necessary align Axis2. It would help
us very much if you could come up with a test case that succeeds with the SAAJ
reference implementation, but that fails with Axis2. If you check out the Axis2
sources you will be able to construct this kind of test easily: just add
another test case to [1] (in this class, all the test cases annotated with
@Validated @Test are executed against the SAAJ reference implementation and
Axis2, and in case of test failure, the error message indicates whether the
test case is invalid (i.e. doesn't pass with the reference implementation) or
whether it fails because of a non-conformance in Axis2).
[1]
http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPFaultTest.java
> SOAPFault.addDetail() creates ignored detail / SOAPFault.getDetail() allows
> proper detail creation
> --------------------------------------------------------------------------------------------------
>
> Key: AXIS2-4617
> URL: https://issues.apache.org/jira/browse/AXIS2-4617
> Project: Axis2
> Issue Type: Bug
> Components: saaj
> Affects Versions: 1.5.1
> Environment: * Java:
> java version "1.6.0_16"
> Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
> Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
> * Eclipse Dynamic Web Project
> * Apache Axis2 v1.5.1
> Reporter: Dave Lindquist
> Priority: Minor
>
> We're creating a SOAP message, with a SOAPFault, and attempting to attach
> details.
> Previous to Axis2 v1.5.1 (don't remember which version), we were doing:
> detail = soapFaultObject.addDetail()
> detail.addDetailEntry(...)
> ... and so on ...
> After upgrading to v1.5.1, this now fails -- no matter what you do, you will
> always get an EMPTY detail entry in your message.
> The resulting XML has:
> <detail></detail>
> After much investigating, the problem appears to be that there is now a
> pre-created 'detail' object already on the SOAPFault, and if you call
> 'addDetail' again a SECOND detail is created. This detail object is
> completely ignored during serialization (not sure if it should be or not?).
> The solution to this is then to do something like:
> detail = soapFaultObject.getDetail()
> if(detail == null)
> {
> detail = soapFaultObject.addDetail()
> }
> detail.addDetailEntry(...)
> Once this workaround is know, this is fairly minor impact -- but without
> knowing the workaround, it has a fairly major effect!
> I think that either:
> a. The addDetail should actually add another detail, and this should actually
> get serialized properly.
> OR
> b. The addDetail method should throw an exception if there is already a
> detail present.
> OR
> c. There should not event BE an addDetail method.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]