You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2010/03/10 18:44:40 UTC

svn commit: r921475 - in /cxf/trunk/rt/frontend/jaxrs/src: main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java

Author: sergeyb
Date: Wed Mar 10 17:44:39 2010
New Revision: 921475

URL: http://svn.apache.org/viewvc?rev=921475&view=rev
Log:
CXF-2462 : another fix to do with handling quoted header values

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java?rev=921475&r1=921474&r2=921475&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/HttpHeadersImpl.java Wed Mar 10 17:44:39 2010
@@ -215,6 +215,11 @@ public class HttpHeadersImpl implements 
                 return newValues;
             }
         }
+        if (originalValue.startsWith("\"") && originalValue.endsWith("\"")) {
+            String actualValue = originalValue.length() == 2 ? "" 
+                : originalValue.substring(1, originalValue.length() - 1);
+            return Collections.singletonList(actualValue);
+        }
         List<String> values = new ArrayList<String>(4);
         Matcher m = COMPLEX_HEADER_PATTERN.matcher(originalValue);
         while (m.find()) {

Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java?rev=921475&r1=921474&r2=921475&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/HttpHeadersImplTest.java Wed Mar 10 17:44:39 2010
@@ -112,6 +112,23 @@ public class HttpHeadersImplTest extends
         assertEquals("Nonce=\"bar\"", values.get(2));
     }
     
+    @Test
+    public void testGetHeaderWithQuotes3() throws Exception {
+        
+        Message m = control.createMock(Message.class);
+        m.get(Message.PROTOCOL_HEADERS);
+        MetadataMap<String, String> headers = 
+            createHeader("COMPLEX_HEADER", "\"value with space\"");
+        EasyMock.expectLastCall().andReturn(headers);
+        control.replay();
+        HttpHeaders h = new HttpHeadersImpl(m);
+        List<String> values = h.getRequestHeader("COMPLEX_HEADER");
+        assertNotNull(values);
+        assertEquals(1, values.size());
+        assertEquals("value with space", values.get(0));
+        
+    }
+    
     
     @Test
     public void testGetHeaders() throws Exception {