[jboss-cvs] JBossAS SVN: r60380 - trunk/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:07:23 EST 2007
Author: kabir.khan at jboss.com
Date: 2007-02-07 11:07:23 -0500 (Wed, 07 Feb 2007)
New Revision: 60380
Modified:
trunk/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
Log:
[JBAOP-254] Add a few retries for the createTempDir() - "Access Is Denied" problem
Modified: trunk/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java 2007-02-07 16:06:50 UTC (rev 60379)
+++ trunk/aspects/src/main/org/jboss/aop/deployment/JBossClassPoolFactory.java 2007-02-07 16:07:23 UTC (rev 60380)
@@ -51,25 +51,52 @@
}
public ScopedClassPool create(ClassLoader cl, ClassPool src, ScopedClassPoolRepository repository)
{
- try
+ if (cl instanceof RepositoryClassLoader)
{
- if (cl instanceof RepositoryClassLoader)
+ File tempdir = getTempDirectory(cl);
+ URL tmpCP;
+ try
{
- File tempdir = createTempDir(cl);
- URL tmpCP = createURLAndAddToLoader(cl, tempdir);
- if (AspectManager.scopedCLHelper.ifScopedDeploymentGetScopedParentUclForCL(cl) != null)
- {
- //It is scoped
- return new ScopedJBossClassPool(cl, src, repository, tempdir, tmpCP);
- }
- return new JBossClassPool(cl, src, repository, tempdir, tmpCP);
+ tmpCP = createURLAndAddToLoader(cl, tempdir);
}
- return new AOPClassPool(cl, src, repository);
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+ if (AspectManager.scopedCLHelper.ifScopedDeploymentGetScopedParentUclForCL(cl) != null)
+ {
+ //It is scoped
+ return new ScopedJBossClassPool(cl, src, repository, tempdir, tmpCP);
+ }
+ return new JBossClassPool(cl, src, repository, tempdir, tmpCP);
}
- catch (IOException e)
+ return new AOPClassPool(cl, src, repository);
+ }
+
+ private File getTempDirectory(ClassLoader cl)
+ {
+ File tempdir = null;
+ int attempts = 0;
+ IOException ex = null;
+ while (tempdir == null && attempts < 5)
{
- throw new RuntimeException(e);
+ //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)
More information about the jboss-cvs-commits
mailing list