[jboss-svn-commits] JBL Code SVN: r27421 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 2 01:20:13 EDT 2009


Author: dward
Date: 2009-07-02 01:20:12 -0400 (Thu, 02 Jul 2009)
New Revision: 27421

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HttpMessageComposer.java
Log:
Fix for JBESB-2664.


Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HttpMessageComposer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HttpMessageComposer.java	2009-07-02 05:08:54 UTC (rev 27420)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HttpMessageComposer.java	2009-07-02 05:20:12 UTC (rev 27421)
@@ -20,17 +20,15 @@
 package org.jboss.soa.esb.listeners.gateway;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.tomcat.util.IntrospectionUtils;
 import org.jboss.internal.soa.esb.util.StreamUtils;
 import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.helpers.ConfigTree;
@@ -97,7 +95,7 @@
 	protected void populateMessage(Message message, T requestWrapper)
 			throws MessageDeliverException {
 		HttpServletRequest request = requestWrapper.getRequest();
-		Map paraMap = request.getParameterMap();;
+		Map paraMap = request.getParameterMap();
 		byte[] bodyBytes = null;
 		try {
 			bodyBytes = StreamUtils.readStream(request.getInputStream());
@@ -108,9 +106,21 @@
 		//Set http request info
 		message.getProperties().setProperty(HTTP_REQUEST_INFO_MAP, getRequestInfo(request));
 		if (paraMap != null && paraMap.size() > 0) {
-		   message.getProperties().setProperty(this.HTTP_REQUEST_PARAMETER_MAP, paraMap);
+		   message.getProperties().setProperty(HTTP_REQUEST_PARAMETER_MAP, paraMap);
 		}
-		payloadProxy.setPayload(message, bodyBytes);
+		// https://jira.jboss.org/jira/browse/JBESB-2664
+		String contentType = request.getContentType();
+		if ( contentType != null && contentType.toLowerCase().startsWith("text/") ) {
+			String characterEncoding = request.getCharacterEncoding();
+			try {
+				String bodyString = new String(bodyBytes, characterEncoding);
+				payloadProxy.setPayload(message, bodyString);
+			} catch (UnsupportedEncodingException e) {
+				throw new IllegalStateException("Unexpected environmental exception:  [" + characterEncoding + "] character encoding not supported.");
+			}
+		} else {
+			payloadProxy.setPayload(message, bodyBytes);
+		}
 	}
 	
 	/* 




More information about the jboss-svn-commits mailing list