Repository: cxf
Updated Branches:
  refs/heads/master 5427c2ece -> d16e2ea97


[CXF-5649]Enable configuration for JMS message type to be byte when use MTOM


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d16e2ea9
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d16e2ea9
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d16e2ea9

Branch: refs/heads/master
Commit: d16e2ea9758eecf8f85830352877904e23bb35d9
Parents: 5427c2e
Author: Freeman Fang <[email protected]>
Authored: Thu Mar 27 14:19:05 2014 +0800
Committer: Freeman Fang <[email protected]>
Committed: Thu Mar 27 14:19:05 2014 +0800

----------------------------------------------------------------------
 .../cxf/transport/jms/BackChannelConduit.java     | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/d16e2ea9/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/BackChannelConduit.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/BackChannelConduit.java
 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/BackChannelConduit.java
index d07b6be..321eded 100644
--- 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/BackChannelConduit.java
+++ 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/BackChannelConduit.java
@@ -34,6 +34,7 @@ import javax.jms.TextMessage;
 
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.configuration.ConfigurationException;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.transport.AbstractConduit;
@@ -124,8 +125,21 @@ class BackChannelConduit extends AbstractConduit 
implements JMSExchangeSender {
             // setup the reply message
             final javax.jms.Message request = (javax.jms.Message)inMessage
                 .get(JMSConstants.JMS_REQUEST_MESSAGE);
-            final String msgType = JMSMessageUtils.isMtomEnabled(outMessage)
-                ? JMSConstants.BINARY_MESSAGE_TYPE : 
JMSMessageUtils.getMessageType(request);
+            final String msgType;
+            if (JMSMessageUtils.isMtomEnabled(outMessage) 
+                && 
!jmsConfig.getMessageType().equals(JMSConstants.TEXT_MESSAGE_TYPE)) {
+                //get chance to set messageType from JMSConfiguration with 
MTOM enabled
+                msgType = jmsConfig.getMessageType();
+            } else {
+                msgType = JMSMessageUtils.getMessageType(request);
+            }
+            if (JMSConstants.TEXT_MESSAGE_TYPE.equals(msgType) 
+                && JMSMessageUtils.isMtomEnabled(outMessage)) {
+                org.apache.cxf.common.i18n.Message msg = 
+                    new 
org.apache.cxf.common.i18n.Message("INVALID_MESSAGE_TYPE", LOG);
+                throw new ConfigurationException(msg);
+            }
+            
             if (isTimedOut(request)) {
                 return;
             }

Reply via email to