You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2010/03/08 15:13:06 UTC

svn commit: r920328 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java

Author: jlmonteiro
Date: Mon Mar  8 14:13:05 2010
New Revision: 920328

URL: http://svn.apache.org/viewvc?rev=920328&view=rev
Log:
OPENEJB-1241: Using @WebServiceRef doesn't allow Service.create usage (standard JAX-WS usage). OpenEJB register its own ProviderWrapper during the first call (ie. set the system property). So, for upcoming JAX-WS usage, our ProviderWrapper will be used.

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java?rev=920328&r1=920327&r2=920328&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java Mon Mar  8 14:13:05 2010
@@ -61,7 +61,7 @@
     public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_WS, ProviderWrapper.class);
 
     //
-    // Magic to get our proider wrapper installed with the PortRefData
+    // Magic to get our provider wrapper installed with the PortRefData
     //
 
     private static ThreadLocal<ProviderWrapperData> threadPortRefs = new ThreadLocal<ProviderWrapperData>();
@@ -104,7 +104,7 @@
 
 
     //
-    // Provider wappre implementation
+    // Provider wapper implementation
     //
 
     private final Provider delegate;
@@ -112,7 +112,7 @@
 
     public ProviderWrapper() {
         delegate = findProvider();
-        portRefs = threadPortRefs.get().portRefData;
+        portRefs = (threadPortRefs.get() == null) ? null : threadPortRefs.get().portRefData;
     }
 
     public Provider getDelegate() {
@@ -121,7 +121,12 @@
 
     public ServiceDelegate createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class serviceClass) {
         ServiceDelegate serviceDelegate = delegate.createServiceDelegate(wsdlDocumentLocation, serviceName, serviceClass);
-        serviceDelegate = new ServiceDelegateWrapper(serviceDelegate);
+        // the PortRef list is bound to this thread when using @WebServiceRef injection
+        // When using the JAX-WS API we don't need to wrap the ServiceDelegate
+        if (threadPortRefs.get() != null) {
+            serviceDelegate = new ServiceDelegateWrapper(serviceDelegate);
+            
+        }
         return serviceDelegate;
     }