[SWS-393] Incoming message with with UTF-8 BOM is failing Created: 10/Jul/08  Updated: 04/May/12  Resolved: 15/Jul/08

Status: Closed
Project: Spring Web Services
Component/s: XML
Affects Version/s: 1.5.3
Fix Version/s: 1.5.4

Type: Bug Priority: Major
Reporter: Nayan Hajratwala Assignee: Arjen Poutsma
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Reproduced on Windows & Solaris/AMD

Attachments: XML File STARExportSigned_no_BOM.xml     XML File STARExportSigned_with_BOM.xml    


When submitting a SOAP request that contains a UTF BOM http://unicode.org/faq/utf_bom.html#22, the following fault string is returned: "Could not access envelope: Unable to create envelope from given source:"

After removing the offending BOM, and not manipulating the XML in any other way, the message is is delivered to the defined Endpoint successfully.

Per http://unicode.org/faq/utf_bom.html#29 , Spring-WS should be able to transparently ignore the BOM on UTF-8 files.

Comment by Arjen Poutsma [ 10/Jul/08 ]

Could you please give some more information: are you using SAAJ or Axiom?
Could you please supply the stacktrace (as attachment)?

Comment by Nayan Hajratwala [ 10/Jul/08 ]

I'm using SAAJ – I will attach a stacktrace & sample file later today, once i reach the office.

Comment by Nayan Hajratwala [ 11/Jul/08 ]

Here is the error message in the log:

Jul 11, 2008 9:22:01 AM com.sun.xml.messaging.saaj.soap.EnvelopeFactory createEnvelope
SEVERE: SAAJ0511: Unable to create envelope from given source

So, perhaps it is a problem in SAAJ? I'm using the SAAJ that is distributed with jwsdp1.3, and can't upgrade since we are on JDK 1.4 ..

If it is a problem with this SAAJ, maybe Spring-WS can strip off the BOM.

I've attached a file with and without a BOM as examples.

Comment by Nayan Hajratwala [ 11/Jul/08 ]

Here is the SOAP Fault that is returned:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring xml:lang="en">Could not access envelope: Unable to create envelope from given source: ; nested exception is com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to create envelope from given source: </faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

Comment by Nayan Hajratwala [ 11/Jul/08 ]

This is a UTF-8 SOAP message with a BOM

Comment by Nayan Hajratwala [ 11/Jul/08 ]

This is a UTF-8 SOAP Message with no BOM

Comment by Arjen Poutsma [ 11/Jul/08 ]

Ok, thanks for the additional info. I will take a look at this for 1.5.4.

Comment by Arjen Poutsma [ 14/Jul/08 ]

I can reproduce this locally, using SAAJ 1.3. So whatever it is, they haven't solved it yet. I will ask the SAAJ mailing list about this, and probably write some workaround for Spring-WS.

Note that as a workaround, you can use Axiom rather than SAAJ. Axiom works fine with UTF-8 BOMs.

Comment by Arjen Poutsma [ 15/Jul/08 ]

Fixed in SVN.

Comment by Arjen Poutsma [ 16/Jul/08 ]

This is a known bug in SAAJ, see https://saaj.dev.java.net/servlets/ReadMsg?list=users&msgNo=89. SPring-WS now has a workaround for this.

Comment by Arjen Poutsma [ 04/May/12 ]

Closing old issues

Generated at Fri Oct 19 22:30:50 UTC 2018 using JIRA 7.9.2#79002-sha1:3bb15b68ecd99a30eb364c4c1a393359bcad6278.