You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2012/08/03 15:44:06 UTC
svn commit: r1368954 -
/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java
Author: lu4242
Date: Fri Aug 3 13:44:06 2012
New Revision: 1368954
URL: http://svn.apache.org/viewvc?rev=1368954&view=rev
Log:
MYFACES-3590 AccessControlException occurs in Classpath._searchDir (Thanks to Paul Nicolucci for provide this patch)
Modified:
myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java
Modified: myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java?rev=1368954&r1=1368953&r2=1368954&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java (original)
+++ myfaces/core/branches/2.0.x/impl/src/main/java/org/apache/myfaces/view/facelets/util/Classpath.java Fri Aug 3 13:44:06 2012
@@ -38,6 +38,8 @@ import java.util.zip.ZipInputStream;
import org.apache.myfaces.shared.util.ClassUtils;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
/**
* @author Jacob Hookom
* @author Roland Huss
@@ -120,7 +122,23 @@ public final class Classpath
private static boolean _searchDir(Set<URL> result, File dir, String suffix) throws IOException
{
- if (dir.exists() && dir.isDirectory())
+ boolean dirExists = false;
+ if (System.getSecurityManager() != null)
+ {
+ final File finalDir = dir;
+ dirExists = (Boolean) AccessController.doPrivileged(new PrivilegedAction()
+ {
+ public Object run()
+ {
+ return finalDir.exists();
+ }
+ });
+ }
+ else
+ {
+ dirExists = dir.exists();
+ }
+ if (dirExists && dir.isDirectory())
{
for (File file : dir.listFiles())
{