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 2013/05/14 17:51:50 UTC

svn commit: r1482410 - in /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs: impl/AbstractRequestContextImpl.java impl/ContainerRequestContextImpl.java utils/JAXRSUtils.java

Author: sergeyb
Date: Tue May 14 15:51:49 2013
New Revision: 1482410

URL: http://svn.apache.org/r1482410
Log:
[CXF-5007] More API updates

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AbstractRequestContextImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AbstractRequestContextImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AbstractRequestContextImpl.java?rev=1482410&r1=1482409&r2=1482410&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AbstractRequestContextImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AbstractRequestContextImpl.java Tue May 14 15:51:49 2013
@@ -28,6 +28,7 @@ import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
+import org.apache.cxf.jaxrs.utils.HttpUtils;
 import org.apache.cxf.message.Message;
 
 public abstract class AbstractRequestContextImpl extends AbstractPropertiesImpl {
@@ -78,7 +79,7 @@ public abstract class AbstractRequestCon
     }
 
     public String getMethod() {
-        return (String)getProperty(Message.HTTP_REQUEST_METHOD);
+        return HttpUtils.getProtocolHeader(m, Message.HTTP_REQUEST_METHOD, null);
     }
 
     public void setMethod(String method) throws IllegalStateException {

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java?rev=1482410&r1=1482409&r2=1482410&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ContainerRequestContextImpl.java Tue May 14 15:51:49 2013
@@ -23,6 +23,7 @@ import java.net.URI;
 import java.util.List;
 import java.util.Map;
 
+import javax.ws.rs.HttpMethod;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Request;
@@ -45,7 +46,7 @@ public class ContainerRequestContextImpl
 
     @Override
     public InputStream getEntityStream() {
-        return m.get(InputStream.class);
+        return m.getContent(InputStream.class);
     }
 
 
@@ -56,7 +57,8 @@ public class ContainerRequestContextImpl
 
     @Override
     public SecurityContext getSecurityContext() {
-        return new SecurityContextImpl(m);
+        SecurityContext sc = m.get(SecurityContext.class);
+        return sc == null ? new SecurityContextImpl(m) : sc;
     }
 
     @Override
@@ -66,7 +68,8 @@ public class ContainerRequestContextImpl
 
     @Override
     public boolean hasEntity() {
-        return getEntityStream() != null;
+        InputStream is = getEntityStream();
+        return is != null && !HttpMethod.GET.equals(getMethod());
     }
 
     @Override
@@ -87,7 +90,7 @@ public class ContainerRequestContextImpl
     public void setRequestUri(URI requestUri) throws IllegalStateException {
         if (requestUri.isAbsolute()) {
             String baseUriString = new UriInfoImpl(m).getBaseUri().toString();
-            String requestUriString = new UriInfoImpl(m).getBaseUri().toString();
+            String requestUriString = requestUri.toString();
             if (!requestUriString.startsWith(baseUriString)) {
                 setRequestUri(requestUri, URI.create("/"));
                 return;
@@ -104,9 +107,7 @@ public class ContainerRequestContextImpl
     }
     
     public void doSetRequestUri(URI requestUri) throws IllegalStateException {
-        if (!preMatch) {
-            throw new IllegalStateException();
-        }
+        checkNotPreMatch();
         HttpUtils.resetRequestURI(m, requestUri.toString());
     }
 
@@ -122,7 +123,19 @@ public class ContainerRequestContextImpl
 
     @Override
     public void setSecurityContext(SecurityContext sc) {
+        checkContext();
         m.put(SecurityContext.class, sc);
     }
 
+    private void checkNotPreMatch() {
+        if (!preMatch) {
+            throw new IllegalStateException();
+        }
+    }
+    
+    @Override 
+    public void setMethod(String method) throws IllegalStateException {
+        checkNotPreMatch();
+        super.setMethod(method);
+    }
 }

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java?rev=1482410&r1=1482409&r2=1482410&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java Tue May 14 15:51:49 2013
@@ -1613,12 +1613,14 @@ public final class JAXRSUtils {
         if (ex.getClass() == WebApplicationException.class) {
             WebApplicationException webEx = (WebApplicationException)ex;
             if (webEx.getResponse().hasEntity() 
-                && webEx.getCause() == null
-                && MessageUtils.isTrue(inMessage.getContextualProperty(SUPPORT_WAE_SPEC_OPTIMIZATION))) {
-                response = webEx.getResponse();
-                
+                && webEx.getCause() == null) {
+                Object prop = inMessage.getContextualProperty(SUPPORT_WAE_SPEC_OPTIMIZATION);
+                if (prop == null || MessageUtils.isTrue(prop)) {
+                    response = webEx.getResponse();
+                }
             }
         }
+        
         if (response == null) {
             ExceptionMapper<T>  mapper =
                 ServerProviderFactory.getInstance(inMessage).createExceptionMapper(ex.getClass(), inMessage);