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/09/13 21:54:29 UTC

svn commit: r1523072 - in /cxf/branches/2.7.x-fixes: api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java

Author: dkulp
Date: Fri Sep 13 19:54:28 2013
New Revision: 1523072

URL: http://svn.apache.org/r1523072
Log:
Merged revisions 1523071 via  git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1523071 | dkulp | 2013-09-13 15:51:41 -0400 (Fri, 13 Sep 2013) | 2 lines

  Revert back to the 2.7.6 classloader stuff for creating the proxy.  Its thus no worse than 2.7.6.  May need to re-look at this later.

........

Modified:
    cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java
    cxf/branches/2.7.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java

Modified: cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java?rev=1523072&r1=1523071&r2=1523072&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java (original)
+++ cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/common/util/ProxyClassLoader.java Fri Sep 13 19:54:28 2013
@@ -24,16 +24,17 @@ import java.util.Set;
 
 /**
  * Utility class loader that can be used to create proxies in cases where
- * the the JAX-RS client classes are not visible to the loader of the
+ * the the client classes are not visible to the loader of the
  * service class.    
  */
 public class ProxyClassLoader extends ClassLoader {
     private Set<ClassLoader> loaders = new HashSet<ClassLoader>();
 
     public void addLoader(ClassLoader loader) {
-        if (loader != null) {
-            loaders.add(loader);
+        if (loader == null) {
+            loader = getSystemClassLoader();
         }
+        loaders.add(loader);
     }
 
     public Class<?> findClass(String name) throws ClassNotFoundException {
@@ -42,6 +43,8 @@ public class ProxyClassLoader extends Cl
                 return loader.loadClass(name);
             } catch (ClassNotFoundException cnfe) {
                 // Try next
+            } catch (NoClassDefFoundError cnfe) {
+                // Try next
             }
         }
         throw new ClassNotFoundException(name);

Modified: cxf/branches/2.7.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java?rev=1523072&r1=1523071&r2=1523072&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientProxyFactoryBean.java Fri Sep 13 19:54:28 2013
@@ -32,7 +32,6 @@ import org.apache.cxf.binding.BindingCon
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.classloader.ClassLoaderUtils.ClassLoaderHolder;
 import org.apache.cxf.common.injection.NoJSR250Annotations;
-import org.apache.cxf.common.util.ProxyClassLoader;
 import org.apache.cxf.common.util.ProxyHelper;
 import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.configuration.security.AuthorizationPolicy;
@@ -173,18 +172,9 @@ public class ClientProxyFactoryBean exte
     
             Class<?> classes[] = getImplementingClasses();
             
-            if (loader != null && loader != clientFactoryBean.getServiceClass().getClassLoader()) {
-                ProxyClassLoader pcl = new ProxyClassLoader();
-                pcl.addLoader(clientFactoryBean.getServiceClass().getClassLoader());
-                pcl.addLoader(loader);
-                loader = pcl;
-            }
-            
-            Object obj = ProxyHelper.getProxy(loader == null 
-                    ? clientFactoryBean.getServiceClass().getClassLoader()
-                        : loader,
-                                                classes,
-                                                handler);
+            Object obj = ProxyHelper.getProxy(clientFactoryBean.getServiceClass().getClassLoader(),
+                                              classes,
+                                              handler);
     
             this.getServiceFactory().sendEvent(FactoryBeanListener.Event.PROXY_CREATED,
                                                classes, handler, obj);