Index: dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java
===================================================================
--- dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java (revision 1178)
+++ dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java (working copy)
@@ -24,6 +24,8 @@
package org.jboss.dna.common.i18n;
import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Locale;
/**
@@ -36,6 +38,7 @@
* returned immediately.
*
* named with a name that matches
+ *
* @author Randall Hauch
*/
public class ClasspathLocalizationRepository implements LocalizationRepository {
@@ -54,10 +57,17 @@
* Create a repository using the supplied class loader. Null may be passed if the class loader should be obtained from the
* current thread's {@link Thread#getContextClassLoader() context class loader} or, if that is null, the same class loader
* that loaded this class.
+ *
* @param classLoader the class loader to use; may be null
*/
public ClasspathLocalizationRepository( ClassLoader classLoader ) {
- if (classLoader == null) classLoader = Thread.currentThread().getContextClassLoader();
+ if (classLoader == null) {
+ classLoader = AccessController.doPrivileged(new PrivilegedAction() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
if (classLoader == null) classLoader = this.getClass().getClassLoader();
this.classLoader = classLoader;
}
@@ -65,7 +75,8 @@
/**
* {@inheritDoc}
*/
- public URL getLocalizationBundle( String bundleName, Locale locale ) {
+ public URL getLocalizationBundle( String bundleName,
+ Locale locale ) {
URL url = null;
String pathPfx = bundleName.replaceAll("\\.", "/");
String variant = '_' + locale.toString();
Index: dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java
===================================================================
--- dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java (revision 1178)
+++ dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java (working copy)
@@ -23,6 +23,8 @@
*/
package org.jboss.dna.common.component;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import net.jcip.annotations.Immutable;
/**
@@ -42,7 +44,8 @@
this(true, delegate);
}
- public StandardClassLoaderFactory( boolean useCurrentThreadContextClassLoader, final ClassLoader delegate ) {
+ public StandardClassLoaderFactory( boolean useCurrentThreadContextClassLoader,
+ final ClassLoader delegate ) {
this.delegate = delegate != null ? delegate : this.getClass().getClassLoader();
this.useCurrentThreadContextClassLoader = useCurrentThreadContextClassLoader;
}
@@ -52,7 +55,13 @@
*/
public ClassLoader getClassLoader( String... classpath ) {
ClassLoader result = null;
- if (this.useCurrentThreadContextClassLoader) result = Thread.currentThread().getContextClassLoader();
+ if (this.useCurrentThreadContextClassLoader) {
+ result = AccessController.doPrivileged(new PrivilegedAction() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
if (result == null) result = this.delegate;
return result;
}
Index: dna-common/src/main/java/org/jboss/dna/common/util/MimeTypeUtil.java
===================================================================
--- dna-common/src/main/java/org/jboss/dna/common/util/MimeTypeUtil.java (revision 1178)
+++ dna-common/src/main/java/org/jboss/dna/common/util/MimeTypeUtil.java (working copy)
@@ -26,6 +26,8 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -134,8 +136,12 @@
*/
protected static Map getDefaultMappings() {
Map> duplicates = new HashMap>();
- return load(Thread.currentThread().getContextClassLoader().getResourceAsStream(MIME_TYPE_EXTENSIONS_RESOURCE_PATH),
- duplicates);
+ ClassLoader classLoader = AccessController.doPrivileged(new PrivilegedAction() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ return load(classLoader.getResourceAsStream(MIME_TYPE_EXTENSIONS_RESOURCE_PATH), duplicates);
}
/**
Index: extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java
===================================================================
--- extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java (revision 1178)
+++ extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java (working copy)
@@ -26,6 +26,8 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -102,7 +104,13 @@
public ProjectClassLoader getClassLoader( ClassLoader parent,
MavenId... mavenIds ) {
- if (parent == null) parent = Thread.currentThread().getContextClassLoader();
+ if (parent == null) {
+ parent = AccessController.doPrivileged(new PrivilegedAction() {
+ public ClassLoader run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
if (parent == null) parent = this.getClass().getClassLoader();
ProjectClassLoader result = new ProjectClassLoader(parent);
// Create a dependencies list for the desired projects ...