cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eduard Hildebrandt (JIRA)" <j...@apache.org>
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
                 URL: https://issues.apache.org/jira/browse/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() {
        super(Phase.RECEIVE);
    }

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

    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.


Mime
View raw message