Author: rfscholte
Date: Thu Aug 21 20:39:56 2014
New Revision: 1619571

URL: http://svn.apache.org/r1619571
Log:
Fix Bad practice - Classloaders should only be created inside doPrivileged block

Modified:
    
maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/exec/DefaultCheckstyleExecutor.java

Modified: 
maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/exec/DefaultCheckstyleExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/exec/DefaultCheckstyleExecutor.java?rev=1619571&r1=1619570&r2=1619571&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/exec/DefaultCheckstyleExecutor.java
 (original)
+++ 
maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/exec/DefaultCheckstyleExecutor.java
 Thu Aug 21 20:39:56 2014
@@ -27,6 +27,8 @@ import java.io.IOException;
 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.Arrays;
 import java.util.Collection;
@@ -163,7 +165,7 @@ public class DefaultCheckstyleExecutor
                                     testSourceDirectories );
         }
 
-        List<URL> urls = new ArrayList<URL>( classPathStrings.size() );
+        final List<URL> urls = new ArrayList<URL>( classPathStrings.size() );
 
         for ( String path : classPathStrings )
         {
@@ -200,7 +202,14 @@ public class DefaultCheckstyleExecutor
             }
         }
 
-        URLClassLoader projectClassLoader = new URLClassLoader( urls.toArray( 
new URL[urls.size()] ), null );
+        URLClassLoader projectClassLoader = AccessController.doPrivileged( new 
PrivilegedAction<URLClassLoader>()
+        {
+            public URLClassLoader run()
+            {
+                return new URLClassLoader( urls.toArray( new URL[urls.size()] 
), null );
+            }
+        } );
+
         checker.setClassloader( projectClassLoader );
 
         checker.setModuleClassLoader( 
Thread.currentThread().getContextClassLoader() );


Reply via email to