I've started trying to fix this, but it's kind of opened up a big can of worms. :-(

I tried to get it to use a XMLStreamWriter, but that then exposed some bugs in our StaxUtils that not all the text nodes/cdata/comments got properly written out. Thus, I had to fix that. I also discovered our W3CDOMStreamReader didn't generate all the events it needed either. Had to fix that. I then discovered some pathways that use the SAAJ interceptor that caused faults to not write anything out on the wire. I've now fixed those issues.

I think I have everything working again. I'm running tests now. If things go well, I'll get things committed shortly.

Dan



On Jun 13, 2008, at 3:10 PM, Manolescu, Radu (IT) wrote:

Is there a workaround at this time for Jira "CXF-1538"
(https://issues.apache.org/jira/browse/CXF-1538
<https://issues.apache.org/jira/browse/CXF-1538> )?
We are hitting against this bug while trying to send signed SOAP
messages over HTTPS.

We understand that this is an open Jira, but we would like to understand
more about what is going on, so that we can find a workaround.
Why is this interceptor in the chain? What function does it provide?
Can we remove it from the chain? Can we replace it in the chain by our
own implementation?
If we were to implement a replacement, what should that replacement do?
Use an XMLStreamWriter?

Our interceptor chain is the following:

Chain [EMAIL PROTECTED] Current flow:
 pre-logical [HolderOutInterceptor, SwAOutInterceptor,
WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor]
 post-logical [SoapActionOutInterceptor]
 prepare-send [MessageSenderInterceptor]
 pre-stream [MSXMLStreamOutInterceptor, LoggingOutInterceptor,
SoapPreProtocolOutInterceptor, AttachmentOutInterceptor]
 pre-protocol [SAAJOutInterceptor, SOAPHandlerInterceptor]
 write [SoapOutInterceptor]
 pre-marshal [LogicalHandlerOutInterceptor]
 marshal [BareOutInterceptor]
 post-protocol [WSS4JOutInterceptor]
 write-ending [SoapOutEndingInterceptor]
 pre-protocol-ending [SAAJOutEndingInterceptor]
 prepare-send-ending [MessageFlushInterceptor,
MessageSenderEndingInterceptor]

The code which presents the problem (Jira CXF-1538):

SAAJOutInterceptor.java
       public void handleMessage(SoapMessage message) throws Fault {
           SOAPMessage soapMessage =
message.getContent(SOAPMessage.class);

           if (soapMessage != null) { // IN OUR CASE, message!=null,
soapMessage!=null

               OutputStream os =
message.getContent(OutputStream.class); // <==== IN OUR CASE, os == null
               try {
                   setMessageContent(message, soapMessage);
                   soapMessage.writeTo(os); // <==== IN OUR CASE,
throws NullPointerException

The exception is:
[...]
Caused by: java.lang.NullPointerException
at
com.sun.xml.messaging.saaj.soap.MessageImpl.writeTo(MessageImpl.java: 122
1)
at
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor $SAAJOutEndingInterce
ptor.handleMessage(SAAJOutInterceptor.java:116)
at
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor $SAAJOutEndingInterce
ptor.handleMessage(SAAJOutInterceptor.java:103)


Thanks,


Radu Manolescu
Morgan Stanley | Technology
2000 Westchester Ave, 1st Floor | Purchase, NY  10577
Phone: +1 914 225-5871
Mobile: +1 203 648-6964
[EMAIL PROTECTED]
--------------------------------------------------------

NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.

---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog




Reply via email to