[CXF-6648] CT should be dropped for GETs by default

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

Branch: refs/heads/2.7.x-fixes
Commit: 5c08c8d80e20f1afb8d28dcd2a184496537522ee
Parents: de02871
Author: Sergey Beryozkin <[email protected]>
Authored: Wed Oct 21 12:47:03 2015 +0100
Committer: Daniel Kulp <[email protected]>
Committed: Fri Oct 30 11:06:01 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/cxf/transport/http/Headers.java     | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/5c08c8d8/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
index f3a63b9..310fa2a 100644
--- 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
+++ 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
@@ -295,8 +295,16 @@ public class Headers {
         boolean dropContentType = false;
         boolean emptyRequest = 
PropertyUtils.isTrue(message.get(EMPTY_REQUEST_PROPERTY));
         if (emptyRequest) { 
-            // drop only if a user explicitly requested it by setting the 
property to false
-            dropContentType = !MessageUtils.getContextualBoolean(message, 
SET_EMPTY_REQUEST_CT_PROPERTY, true);
+            Object setCtForEmptyRequestProp = 
message.getContextualProperty(SET_EMPTY_REQUEST_CT_PROPERTY);
+            if (setCtForEmptyRequestProp != null) {
+                // If SET_EMPTY_REQUEST_CT_PROPERTY is set then do as a user 
prefers.
+                // CT will be dropped if setting CT for empty requests was 
explicitly disabled
+                dropContentType = 
PropertyUtils.isFalse(setCtForEmptyRequestProp);
+            } else if 
("GET".equals((String)message.get(Message.HTTP_REQUEST_METHOD))) {
+                // otherwise if it is GET then just drop it
+                dropContentType = true;
+            }
+            
         }
         if (!dropContentType) {
             String ct = emptyRequest && 
!headers.containsKey(Message.CONTENT_TYPE) ? "*/*" : determineContentType();

Reply via email to