[jboss-cvs] JBossAS SVN: r60381 - branches/Branch_4_2/aspects/src/main/org/jboss/aop/deployment.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 7 11:10:34 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-02-07 11:10:34 -0500 (Wed, 07 Feb 2007)
New Revision: 60381

Modified:
   branches/Branch_4_2/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
Log:
[JBAOP-254] Add a few retries for the createTempDir() - "Access Is Denied" problem

Modified: branches/Branch_4_2/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
===================================================================
--- branches/Branch_4_2/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java	2007-02-07 16:07:23 UTC (rev 60380)
+++ branches/Branch_4_2/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java	2007-02-07 16:10:34 UTC (rev 60381)
@@ -55,7 +55,7 @@
       {
          if (cl instanceof RepositoryClassLoader)
          {
-            File tempdir = createTempDir(cl);
+            File tempdir = getTempDirectory(cl);
             URL tmpCP = createURLAndAddToLoader(cl, tempdir);
             if (AspectManager.scopedCLHelper.ifScopedDeploymentGetScopedParentUclForCL(cl) != null)
             {
@@ -72,6 +72,32 @@
       }
    }
 
+   private File getTempDirectory(ClassLoader cl)
+   {
+      File tempdir = null;
+      int attempts = 0;
+      IOException ex = null;
+      while (tempdir == null && attempts < 5)
+      {
+         //Workaround for JBAOP-254, retry a few times
+         try
+         {
+            tempdir = createTempDir(cl);
+         }
+         catch (IOException e)
+         {
+            ex = e;
+         }
+      }
+      
+      if (tempdir == null)
+      {
+         throw new RuntimeException("", ex);
+      }
+      
+      return tempdir;
+   }
+   
    public ScopedClassPool create(ClassPool src, ScopedClassPoolRepository repository)
    {
       return new JBossClassPool(src, repository);




More information about the jboss-cvs-commits mailing list