cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eduard Hildebrandt (JIRA)" <>
Subject [jira] Created: (CXF-1668) Wrong encoding using JMS Transport
Date Wed, 25 Jun 2008 10:09:45 GMT
Wrong encoding using JMS Transport

                 Key: CXF-1668
             Project: CXF
          Issue Type: Bug
          Components: Transports
    Affects Versions: 2.1
         Environment: MS Windows XP, Sun Solaris
            Reporter: Eduard Hildebrandt

In class JMSConduit getBytes() is used to transform the string in a byte array.

            byte[] bytes = null;
            if (response instanceof String) {
                String requestString = (String)response;                
                bytes = requestString.getBytes();
            } else {
                bytes = (byte[])response;

getBytes() uses the standard encoding of the plattform. This is wrong because the encoding
of the message must be used.

I have written an interceptor as workaround to solve this issue:

public class EncodingInterceptor extends AbstractPhaseInterceptor<Message> {
    public EncodingInterceptor() {

    public void handleMessage(Message message) {   
    	try {
    	 	InputStream inputStream = message.getContent(InputStream.class);
    	 	ByteArrayOutputStream baos = new ByteArrayOutputStream();    	
        	while (true) {
        		int datum =;
        		if (datum == -1)
        	String string = baos.toString();
        	ByteArrayInputStream bais = new ByteArrayInputStream(string.getBytes("UTF-8"));
        	message.setContent(InputStream.class, bais);
		} catch (IOException e) {

    public void handleFault(Message messageParam) {

But the issue should be solved in JMSConduit class.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message