Author: dkulp
Date: Wed Aug  6 08:56:33 2008
New Revision: 683307

URL: http://svn.apache.org/viewvc?rev=683307&view=rev
Log:
One more attempt to get the "accepted content types" stuff set on the exchange 
properly in all cases

Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
    
cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java?rev=683307&r1=683306&r2=683307&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
 Wed Aug  6 08:56:33 2008
@@ -108,18 +108,17 @@
             path = path + "/";
         }
         
-        String acceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
-        if (acceptTypes == null) {
-            acceptTypes = "*/*";
-        }
-        List<MediaType> acceptContentTypes = 
JAXRSUtils.sortMediaTypes(acceptTypes);
-        message.getExchange().put(Message.ACCEPT_CONTENT_TYPE, 
acceptContentTypes);
-        
         
         //1. Matching target resource class
         Service service = message.getExchange().get(Service.class);
         List<ClassResourceInfo> resources = 
((JAXRSServiceImpl)service).getClassResourceInfos();
 
+        String acceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
+        if (acceptTypes == null) {
+            acceptTypes = "*/*";
+            message.put(Message.ACCEPT_CONTENT_TYPE, acceptTypes);
+        }
+
         MultivaluedMap<String, String> values = new MetadataMap<String, 
String>();
         ClassResourceInfo resource = JAXRSUtils.selectResourceClass(resources, 
path, values);
         if (resource == null) {
@@ -128,19 +127,31 @@
                                                    BUNDLE, 
                                                    path);
             LOG.severe(errorMsg.toString());
+            acceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
+            List<MediaType> acceptContentTypes = 
JAXRSUtils.sortMediaTypes(acceptTypes);
+            message.getExchange().put(Message.ACCEPT_CONTENT_TYPE, 
acceptContentTypes);
+
             throw new WebApplicationException(404);
         }
-        
+
+
         List<ProviderInfo<RequestHandler>> shs = 
             ProviderFactory.getInstance().getRequestHandlers();
         for (ProviderInfo<RequestHandler> sh : shs) {
             Response response = sh.getProvider().handleRequest(message, 
resource);
             if (response != null) {
                 message.getExchange().put(Response.class, response);
+                acceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
+                List<MediaType> acceptContentTypes = 
JAXRSUtils.sortMediaTypes(acceptTypes);
+                message.getExchange().put(Message.ACCEPT_CONTENT_TYPE, 
acceptContentTypes);
                 return;
             }
         }
         
+        acceptTypes = (String)message.get(Message.ACCEPT_CONTENT_TYPE);
+        List<MediaType> acceptContentTypes = 
JAXRSUtils.sortMediaTypes(acceptTypes);
+        message.getExchange().put(Message.ACCEPT_CONTENT_TYPE, 
acceptContentTypes);
+        
         message.getExchange().put(ROOT_RESOURCE_CLASS, resource);
         
         LOG.fine("Request path is: " + path);

Modified: 
cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=683307&r1=683306&r2=683307&view=diff
==============================================================================
--- 
cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
 (original)
+++ 
cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
 Wed Aug  6 08:56:33 2008
@@ -41,7 +41,7 @@
     @BeforeClass
     public static void startServers() throws Exception {
         assertTrue("server did not launch correctly",
-                   launchServer(BookServer.class, true));
+                   launchServer(BookServer.class));
     }
     
     @Test


Reply via email to