This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 9d259f3  [CXF-7689]ensure don't have content-type|content-length as 
jms message headers when use REST on JMS Transport
9d259f3 is described below

commit 9d259f3aa498228c19a16d9c6eab297c8f35cdb3
Author: Freeman Fang <[email protected]>
AuthorDate: Mon Mar 26 12:31:14 2018 +0800

    [CXF-7689]ensure don't have content-type|content-length as jms message 
headers when use REST on JMS Transport
---
 .../java/org/apache/cxf/transport/jms/JMSConstants.java |  2 ++
 .../org/apache/cxf/transport/jms/JMSMessageUtils.java   | 17 ++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
index c981630..0387b3c 100644
--- 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
+++ 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSConstants.java
@@ -76,6 +76,8 @@ public final class JMSConstants {
     public static final String MALFORMED_REQUESTURI = "malformed.requesturi";
     
     public static final String RS_CONTENT_TYPE = 
"org.apache.cxf.jms.rs.ContentType";
+    
+    public static final String RS_CONTENT_LENGTH = 
"org.apache.cxf.jms.rs.ContentLength";
 
     private JMSConstants() {
         //utility class
diff --git 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
index 669c903..e52f163 100644
--- 
a/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
+++ 
b/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSMessageUtils.java
@@ -251,13 +251,28 @@ final class JMSMessageUtils {
                                           outMessage,
                                           
org.apache.cxf.message.Message.RESPONSE_CODE);
             }
+            String contentType = 
(String)outMessage.remove(org.apache.cxf.message.Message.CONTENT_TYPE);
+            if (contentType != null) {
+                outMessage.put(JMSConstants.RS_CONTENT_TYPE, contentType);
+            }
             addJMSPropertyFromMessage(messageHeaders,
                                       outMessage,
                                       JMSConstants.RS_CONTENT_TYPE);
+            
+            String contentLength = 
(String)outMessage.remove(HttpHeaderHelper.CONTENT_LENGTH);
+            if (contentLength != null) {
+                outMessage.put(JMSConstants.RS_CONTENT_LENGTH, contentLength);
+            }
+            addJMSPropertyFromMessage(messageHeaders,
+                                      outMessage,
+                                      JMSConstants.RS_CONTENT_LENGTH);
         }
         if (headers != null) {
             for (Map.Entry<String, List<String>> ent : headers.entrySet()) {
-                messageHeaders.putProperty(ent.getKey(), 
JMSMessageUtils.join(ent.getValue(), ','));
+                if 
(!ent.getKey().equals(org.apache.cxf.message.Message.CONTENT_TYPE)
+                    && !ent.getKey().equals(HttpHeaderHelper.CONTENT_LENGTH)) {
+                    messageHeaders.putProperty(ent.getKey(), 
JMSMessageUtils.join(ent.getValue(), ','));
+                }
             }
         }
         messageHeaders.writeTo(jmsMessage);

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to