Author: antelder
Date: Mon Oct  3 07:26:18 2011
New Revision: 1178314

URL: http://svn.apache.org/viewvc?rev=1178314&view=rev
Log:
TUSCANY-3956: Fix Java2 Security exception in 
ContributionHelper.getNestedJarUrls method

Modified:
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java?rev=1178314&r1=1178313&r2=1178314&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionHelper.java
 Mon Oct  3 07:26:18 2011
@@ -24,6 +24,8 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.zip.ZipEntry;
@@ -36,9 +38,13 @@ public class ContributionHelper {
 
     public static List<URL> getNestedJarUrls(final Contribution contribution) 
throws IOException {
         List<URL> urls = new ArrayList<URL>();
-        boolean isZipContribution = 
contribution.getLocation().endsWith(".zip");
-        URI uri = URI.create(contribution.getLocation());
-        boolean isFolderContribution = !isZipContribution && 
uri.getScheme().equals("file") && new 
File(uri.getSchemeSpecificPart()).isDirectory();
+        final boolean isZipContribution = 
contribution.getLocation().endsWith(".zip");
+        final URI uri = URI.create(contribution.getLocation());
+        boolean isFolderContribution = AccessController.doPrivileged(new 
PrivilegedAction<Boolean>() {
+            public Boolean run() {
+               return !isZipContribution && uri.getScheme().equals("file") && 
new File(uri.getSchemeSpecificPart()).isDirectory();
+            }
+        });
         if (isZipContribution || isFolderContribution) {
             for (Artifact a : contribution.getArtifacts()) {
                 if (a.getLocation().endsWith(".jar")) {


Reply via email to