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();