You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2012/10/23 12:09:31 UTC
svn commit: r1401235 - in /cxf/trunk:
api/src/main/java/org/apache/cxf/common/classloader/
integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/
maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/
maven-plugins/corba/sr...
Author: coheigea
Date: Tue Oct 23 10:09:31 2012
New Revision: 1401235
URL: http://svn.apache.org/viewvc?rev=1401235&view=rev
Log:
Wrapping new ClassLoader instantiation in AccessController.doPrivileged
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java
cxf/trunk/maven-plugins/corba/src/main/java/org/apache/cxf/maven_plugin/corba/maven/plugins/WSDLToIDLPlugin.java
cxf/trunk/maven-plugins/java2ws-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java
cxf/trunk/maven-plugins/wadl2java-plugin/src/main/java/org/apache/cxf/maven_plugin/common/ClassLoaderSwitcher.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBus.java
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/AnnotationUtil.java
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/common/classloader/ClassLoaderUtils.java Tue Oct 23 10:09:31 2012
@@ -22,6 +22,7 @@ package org.apache.cxf.common.classloade
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.net.URLClassLoader;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -59,6 +60,21 @@ public final class ClassLoaderUtils {
});
}
+ public static ClassLoader getURLClassLoader(
+ final URL[] urls, final ClassLoader parent
+ ) {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ public ClassLoader run() {
+ return new URLClassLoader(urls, parent);
+ }
+ });
+ }
+
+ public static ClassLoader getURLClassLoader(
+ final List<URL> urlList, final ClassLoader parent
+ ) {
+ return getURLClassLoader(urlList.toArray(new URL[urlList.size()]), parent);
+ }
/**
* Load a given resource. <p/> This method will try to load the resource
Modified: cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java (original)
+++ cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java Tue Oct 23 10:09:31 2012
@@ -47,9 +47,9 @@ public class PlugInClassLoader extends S
private String jarUrls[] = new String[0];
private final ProtectionDomain protectionDomain;
- private ClassLoader ploader;
+ private final ClassLoader ploader;
- public PlugInClassLoader(ClassLoader p) throws IOException {
+ public PlugInClassLoader(final ClassLoader p) throws IOException {
super(new FireWallClassLoader(p,
getFilterList(p, FILTERS_PROPS_FILE),
getFilterList(p, NEFILTERS_PROPS_FILE)));
Modified: cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java Tue Oct 23 10:09:31 2012
@@ -23,7 +23,6 @@ import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
-import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
@@ -31,6 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.logging.Log;
@@ -99,8 +99,7 @@ public class ClassLoaderSwitcher {
}
origContextClassloader = Thread.currentThread().getContextClassLoader();
- URLClassLoader loader = new URLClassLoader(urlList.toArray(new URL[urlList.size()]),
- origContextClassloader);
+ ClassLoader loader = ClassLoaderUtils.getURLClassLoader(urlList, origContextClassloader);
String newCp = buf.toString();
log.debug("Classpath: " + urlList.toString());
Modified: cxf/trunk/maven-plugins/corba/src/main/java/org/apache/cxf/maven_plugin/corba/maven/plugins/WSDLToIDLPlugin.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/corba/src/main/java/org/apache/cxf/maven_plugin/corba/maven/plugins/WSDLToIDLPlugin.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/corba/src/main/java/org/apache/cxf/maven_plugin/corba/maven/plugins/WSDLToIDLPlugin.java (original)
+++ cxf/trunk/maven-plugins/corba/src/main/java/org/apache/cxf/maven_plugin/corba/maven/plugins/WSDLToIDLPlugin.java Tue Oct 23 10:09:31 2012
@@ -21,7 +21,6 @@ package org.apache.cxf.maven_plugin.corb
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
-import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -29,6 +28,7 @@ import java.util.Map;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.tools.corba.WSDLToIDL;
@@ -107,8 +107,7 @@ public class WSDLToIDLPlugin extends Abs
}
ClassLoader origContext = Thread.currentThread().getContextClassLoader();
- URLClassLoader loader = new URLClassLoader(urlList.toArray(new URL[urlList.size()]),
- origContext);
+ ClassLoader loader = ClassLoaderUtils.getURLClassLoader(urlList, origContext);
String newCp = buf.toString();
//with some VM's, creating an XML parser (which we will do to parse wsdls)
Modified: cxf/trunk/maven-plugins/java2ws-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/java2ws-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/java2ws-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java (original)
+++ cxf/trunk/maven-plugins/java2ws-plugin/src/main/java/org/apache/cxf/maven_plugin/ClassLoaderSwitcher.java Tue Oct 23 10:09:31 2012
@@ -22,12 +22,12 @@ package org.apache.cxf.maven_plugin;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
-import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.logging.Log;
@@ -92,8 +92,7 @@ public class ClassLoaderSwitcher {
}
origContextClassloader = Thread.currentThread().getContextClassLoader();
- URLClassLoader loader = new URLClassLoader(urlList.toArray(new URL[urlList.size()]),
- origContextClassloader);
+ ClassLoader loader = ClassLoaderUtils.getURLClassLoader(urlList, origContextClassloader);
String newCp = buf.toString();
log.debug("Classpath: " + urlList.toString());
Modified: cxf/trunk/maven-plugins/wadl2java-plugin/src/main/java/org/apache/cxf/maven_plugin/common/ClassLoaderSwitcher.java
URL: http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/wadl2java-plugin/src/main/java/org/apache/cxf/maven_plugin/common/ClassLoaderSwitcher.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/wadl2java-plugin/src/main/java/org/apache/cxf/maven_plugin/common/ClassLoaderSwitcher.java (original)
+++ cxf/trunk/maven-plugins/wadl2java-plugin/src/main/java/org/apache/cxf/maven_plugin/common/ClassLoaderSwitcher.java Tue Oct 23 10:09:31 2012
@@ -23,7 +23,6 @@ import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
-import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
@@ -31,6 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.helpers.CastUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.logging.Log;
@@ -101,8 +101,7 @@ public class ClassLoaderSwitcher {
}
origContextClassloader = Thread.currentThread().getContextClassLoader();
- URLClassLoader loader = new URLClassLoader(urlList.toArray(new URL[urlList.size()]),
- origContextClassloader);
+ ClassLoader loader = ClassLoaderUtils.getURLClassLoader(urlList, origContextClassloader);
String newCp = buf.toString();
log.debug("Classpath: " + urlList.toString());
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBus.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBus.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBus.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/blueprint/BlueprintBus.java Tue Oct 23 10:09:31 2012
@@ -19,6 +19,8 @@
package org.apache.cxf.bus.blueprint;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import org.apache.cxf.bus.extension.ExtensionManagerBus;
import org.apache.cxf.configuration.ConfiguredBeanLocator;
@@ -58,11 +60,16 @@ public class BlueprintBus extends Extens
}
}
- public void setBundleContext(BundleContext c) {
+ public void setBundleContext(final BundleContext c) {
context = c;
- super.setExtension(new BundleDelegatingClassLoader(c.getBundle(),
- this.getClass().getClassLoader()),
- ClassLoader.class);
+ ClassLoader bundleClassLoader =
+ AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ public ClassLoader run() {
+ return new BundleDelegatingClassLoader(c.getBundle(),
+ this.getClass().getClassLoader());
+ }
+ });
+ super.setExtension(bundleClassLoader, ClassLoader.class);
super.setExtension(c, BundleContext.class);
}
public void setBlueprintContainer(BlueprintContainer con) {
Modified: cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java Tue Oct 23 10:09:31 2012
@@ -368,13 +368,14 @@ public class DynamicClientFactory {
LOG.log(Level.SEVERE , new Message("COULD_NOT_COMPILE_SRC", LOG, wsdlUrl).toString());
}
FileUtils.removeDir(src);
- URLClassLoader cl;
+ URL[] urls = null;
try {
- cl = new URLClassLoader(new URL[] {classes.toURI().toURL()}, classLoader);
+ urls = new URL[] {classes.toURI().toURL()};
} catch (MalformedURLException mue) {
throw new IllegalStateException("Internal error; a directory returns a malformed URL: "
+ mue.getMessage(), mue);
}
+ ClassLoader cl = ClassLoaderUtils.getURLClassLoader(urls, classLoader);
JAXBContext context;
Map<String, Object> contextProperties = jaxbContextProperties;
Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java Tue Oct 23 10:09:31 2012
@@ -641,7 +641,7 @@ public class JettyHTTPServerEngine
// Regardless the port has to equal the one
// we are configured for.
assert porto == port;
- assert hosto == host;
+ assert hosto == null ? host == null : hosto.equals(host);
if (hosto != null) {
result.setHost(hosto);
}
Modified: cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/AnnotationUtil.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/AnnotationUtil.java?rev=1401235&r1=1401234&r2=1401235&view=diff
==============================================================================
--- cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/AnnotationUtil.java (original)
+++ cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/AnnotationUtil.java Tue Oct 23 10:09:31 2012
@@ -31,6 +31,7 @@ import java.util.logging.Logger;
import javax.jws.WebParam;
import javax.jws.WebResult;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.URIParserUtil;
@@ -70,11 +71,11 @@ public final class AnnotationUtil {
public static synchronized URLClassLoader getClassLoader(ClassLoader parent) {
URL[] urls = URIParserUtil.pathToURLs(getClassPath());
- return new URLClassLoader(urls, parent);
+ return (URLClassLoader)ClassLoaderUtils.getURLClassLoader(urls, parent);
}
private static ClassLoader newLoader(URL[] urls, ClassLoader parent) {
- return new URLClassLoader(urls, parent);
+ return ClassLoaderUtils.getURLClassLoader(urls, parent);
}
public static synchronized Class<?> loadClass(String className, ClassLoader parent) {
Class<?> clazz = null;