Author: dkulp Date: Fri May 11 17:42:23 2012 New Revision: 1337308 URL: http://svn.apache.org/viewvc?rev=1337308&view=rev Log: Merged revisions 1337301 via svn merge from https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
........ r1337301 | dkulp | 2012-05-11 13:39:54 -0400 (Fri, 11 May 2012) | 10 lines Merged revisions 1337293 via git cherry-pick from https://svn.apache.org/repos/asf/cxf/trunk ........ r1337293 | dkulp | 2012-05-11 13:35:27 -0400 (Fri, 11 May 2012) | 3 lines [CXF-4312] Similar issue on the server side about having an executor set by default. Not needed if the rest of the code guards against NPE ........ ........ Modified: cxf/branches/2.4.x-fixes/ (props changed) cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Proxy.java cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java Propchange: cxf/branches/2.4.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java?rev=1337308&r1=1337307&r2=1337308&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java (original) +++ cxf/branches/2.4.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java Fri May 11 17:42:23 2012 @@ -88,7 +88,8 @@ public class ServiceInvokerInterceptor e }; Executor executor = getExecutor(endpoint); - if (exchange.get(Executor.class) == executor) { + Executor executor2 = exchange.get(Executor.class); + if (executor2 == executor || executor == null) { // already executing on the appropriate executor invocation.run(); } else { Modified: cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java?rev=1337308&r1=1337307&r2=1337308&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java (original) +++ cxf/branches/2.4.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java Fri May 11 17:42:23 2012 @@ -50,7 +50,6 @@ import org.apache.cxf.service.model.Mess import org.apache.cxf.service.model.MessagePartInfo; import org.apache.cxf.service.model.OperationInfo; import org.apache.cxf.service.model.ServiceInfo; -import org.apache.cxf.workqueue.SynchronousExecutor; /** * The CXF Service implementation which is used @@ -73,7 +72,6 @@ public class JAXRSServiceImpl extends Ab public JAXRSServiceImpl(List<ClassResourceInfo> cri, QName qname) { this.classResourceInfos = cri; - executor = SynchronousExecutor.getInstance(); this.serviceName = qname; } Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Proxy.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Proxy.java?rev=1337308&r1=1337307&r2=1337308&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Proxy.java (original) +++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Proxy.java Fri May 11 17:42:23 2012 @@ -23,6 +23,7 @@ package org.apache.cxf.ws.rm; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.Executor; import java.util.logging.Level; import java.util.logging.Logger; @@ -42,6 +43,7 @@ import org.apache.cxf.service.model.Endp import org.apache.cxf.service.model.InterfaceInfo; import org.apache.cxf.service.model.OperationInfo; import org.apache.cxf.transport.Conduit; +import org.apache.cxf.workqueue.SynchronousExecutor; import org.apache.cxf.ws.addressing.AttributedURIType; import org.apache.cxf.ws.addressing.RelatesToType; import org.apache.cxf.ws.addressing.v200408.EndpointReferenceType; @@ -155,7 +157,11 @@ public class Proxy { } } }; - reliableEndpoint.getApplicationEndpoint().getExecutor().execute(r); + Executor ex = reliableEndpoint.getApplicationEndpoint().getExecutor(); + if (ex == null) { + ex = SynchronousExecutor.getInstance(); + } + ex.execute(r); return null; } Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java?rev=1337308&r1=1337307&r2=1337308&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java (original) +++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java Fri May 11 17:42:23 2012 @@ -49,6 +49,7 @@ import org.apache.cxf.message.MessageUti import org.apache.cxf.service.model.EndpointInfo; import org.apache.cxf.transport.Conduit; import org.apache.cxf.transport.MessageObserver; +import org.apache.cxf.workqueue.SynchronousExecutor; import org.apache.cxf.ws.addressing.AddressingProperties; import org.apache.cxf.ws.addressing.AttributedURIType; import org.apache.cxf.ws.policy.AssertionInfo; @@ -427,7 +428,11 @@ public class RetransmissionQueueImpl imp Executor executor = ep.getExecutor(); if (null == executor) { executor = ep.getService().getExecutor(); - LOG.log(Level.FINE, "Using service executor {0}", executor.getClass().getName()); + if (executor == null) { + executor = SynchronousExecutor.getInstance(); + } else { + LOG.log(Level.FINE, "Using service executor {0}", executor.getClass().getName()); + } } else { LOG.log(Level.FINE, "Using endpoint executor {0}", executor.getClass().getName()); }
