Hi all,

I'm a newbie to this mailing list..

I believe I found a bug while trying to use WSS4J 1.5.1 but I couldn't find
a way to submit the bug in JIRA web site..  It looks like an Axis
SOAPEnvelope.getHeaders() issue but it fails in WSS4J..

The issue occurs when there's a new line character after the
<soapenv:header> xml tag.

This block of code fails:

           /*
           * save the processed-header flags
           */
           ArrayList processedHeaders = new ArrayList();
           Iterator iterator = sm.getSOAPEnvelope
().getHeaders().iterator();
           while (iterator.hasNext()) {
               ///////////////////
               org.apache.axis.message.SOAPHeaderElement tempHeader = null;
               Object obj = iterator.next();
               tempHeader = (org.apache.axis.message.SOAPHeaderElement)
obj;

               if (tempHeader != null && tempHeader.isProcessed()) {
                   processedHeaders.add(tempHeader.getQName());
               }
           }

Since a newline is returned as Text object in the getHeaders() method, the
class cast fails..

Here's my workaround for now to get my code to work:

           /*
           * save the processed-header flags
           */
           ArrayList processedHeaders = new ArrayList();
           Iterator iterator = sm.getSOAPEnvelope
().getHeaders().iterator();
           while (iterator.hasNext()) {
               ///////////////////
               org.apache.axis.message.SOAPHeaderElement tempHeader = null;
               Object obj = iterator.next();
               if (obj instanceof org.apache.axis.message.SOAPHeaderElement)
{
                   tempHeader = (org.apache.axis.message.SOAPHeaderElement)
obj;
               }
               if (tempHeader != null && tempHeader.isProcessed()) {
                   processedHeaders.add(tempHeader.getQName());
               }
           }


Thanks and please let me know if there's a better way to fix this issue..
--Nathan

Reply via email to