You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2013/02/27 08:15:36 UTC

svn commit: r1450636 - in /cxf/branches/2.5.x-fixes/rt/transports/http/src: main/java/org/apache/cxf/transport/servlet/ServletController.java test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java

Author: dkulp
Date: Wed Feb 27 07:15:36 2013
New Revision: 1450636

URL: http://svn.apache.org/r1450636
Log:
Merged revisions 1448270 via  git cherry-pick from
https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes

........
  r1448270 | dkulp | 2013-02-20 08:03:22 -0800 (Wed, 20 Feb 2013) | 18 lines

  Merged revisions 1448245 via  git cherry-pick from
  https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes

  ........
    r1448245 | dkulp | 2013-02-20 10:39:56 -0500 (Wed, 20 Feb 2013) | 10 lines

    Merged revisions 1448177 via  git cherry-pick from
    https://svn.apache.org/repos/asf/cxf/trunk

    ........
      r1448177 | dkulp | 2013-02-20 09:17:47 -0500 (Wed, 20 Feb 2013) | 2 lines

      Make sure the context classloader is set for REST requests.  Simplify things a bit.

    ........

  ........

........

Modified:
    cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
    cxf/branches/2.5.x-fixes/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java

Modified: cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java?rev=1450636&r1=1450635&r2=1450636&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java Wed Feb 27 07:15:36 2013
@@ -149,19 +149,21 @@ public class ServletController {
                         LOG.warning("Can't find the the request for "
                                     + request.getRequestURL() + "'s Observer ");
                         generateNotFound(request, res);
-                    }  else { // the request should be a restful service request
-                        updateDestination(request, d);
-                        invokeDestination(request, res, d);
                     }
                 }
-            } else {
-                EndpointInfo ei = d.getEndpointInfo();
+            }
+            if (d != null) {
                 Bus bus = d.getBus();
                 ClassLoaderHolder orig = null;
                 try {
-                    ResourceManager manager = bus.getExtension(ResourceManager.class);
-                    if (manager != null) {
-                        ClassLoader loader = manager.resolveResource("", ClassLoader.class);
+                    if (bus != null) {
+                        ClassLoader loader = bus.getExtension(ClassLoader.class);
+                        if (loader == null) {
+                            ResourceManager manager = bus.getExtension(ResourceManager.class);
+                            if (manager != null) {
+                                loader = manager.resolveResource("", ClassLoader.class);
+                            }
+                        }
                         if (loader != null) {
                             //need to set the context classloader to the loader of the bundle
                             orig = ClassLoaderUtils.setThreadContextClassloader(loader);
@@ -169,21 +171,24 @@ public class ServletController {
                     }
                     updateDestination(request, d);
                     
-                    QueryHandlerRegistry queryHandlerRegistry = bus.getExtension(QueryHandlerRegistry.class);
-                    if ("GET".equals(request.getMethod()) 
-                        && !StringUtils.isEmpty(request.getQueryString()) 
-                        && queryHandlerRegistry != null) {
-                        
-                        String ctxUri = request.getPathInfo();
-                        String baseUri = request.getRequestURL().toString()
-                            + "?" + request.getQueryString();
-
-                        QueryHandler selectedHandler = 
-                            findQueryHandler(queryHandlerRegistry, ei, ctxUri, baseUri);
-                        
-                        if (selectedHandler != null) {
-                            respondUsingQueryHandler(selectedHandler, res, ei, ctxUri, baseUri);
-                            return;
+                    if (bus != null) {
+                        QueryHandlerRegistry queryHandlerRegistry = bus.getExtension(QueryHandlerRegistry.class);
+                        if ("GET".equals(request.getMethod()) 
+                            && !StringUtils.isEmpty(request.getQueryString()) 
+                            && queryHandlerRegistry != null) {
+                            
+                            EndpointInfo ei = d.getEndpointInfo();
+                            String ctxUri = request.getPathInfo();
+                            String baseUri = request.getRequestURL().toString()
+                                + "?" + request.getQueryString();
+    
+                            QueryHandler selectedHandler = 
+                                findQueryHandler(queryHandlerRegistry, ei, ctxUri, baseUri);
+                            
+                            if (selectedHandler != null) {
+                                respondUsingQueryHandler(selectedHandler, res, ei, ctxUri, baseUri);
+                                return;
+                            }
                         }
                     }
                     invokeDestination(request, res, d);

Modified: cxf/branches/2.5.x-fixes/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java?rev=1450636&r1=1450635&r2=1450636&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java (original)
+++ cxf/branches/2.5.x-fixes/rt/transports/http/src/test/java/org/apache/cxf/transport/servlet/ServletControllerTest.java Wed Feb 27 07:15:36 2013
@@ -135,6 +135,8 @@ public class ServletControllerTest exten
         AbstractHTTPDestination dest = EasyMock.createMock(AbstractHTTPDestination.class);
         registry.checkRestfulRequest("");
         EasyMock.expectLastCall().andReturn(dest).atLeastOnce();
+        dest.getBus();
+        EasyMock.expectLastCall().andReturn(null).anyTimes();
         dest.getMessageObserver();
         EasyMock.expectLastCall().andReturn(EasyMock.createMock(MessageObserver.class)).atLeastOnce();