[jboss-cvs] JBossAS SVN: r97905 - in projects/jboss-classpool/trunk: classpool/src/main/java/org/jboss/classpool/spi and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 16 13:19:31 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-12-16 13:19:30 -0500 (Wed, 16 Dec 2009)
New Revision: 97905
Modified:
projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/base/AbstractIsLocalResourcePlugin.java
projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/ClassPoolRepository.java
projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/SecurityActions.java
projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPool.java
projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPoolRepository.java
projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/VFSClassLoaderDomainRegistry.java
projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/JBossClassPoolFactory.java
projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/LoaderRepositoryUrlUtil.java
projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/ToClassInvoker.java
projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/UclDelegatingClassPoolFactory.java
Log:
[JBREFLECT-79] Fixed a few findbugs issues.
Modified: projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/base/AbstractIsLocalResourcePlugin.java
===================================================================
--- projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/base/AbstractIsLocalResourcePlugin.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/base/AbstractIsLocalResourcePlugin.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -21,13 +21,14 @@
*/
package org.jboss.classpool.base;
+import java.net.URI;
import java.net.URL;
+import javassist.ClassPool;
+
import org.jboss.classpool.spi.AbstractClassPool;
-import javassist.ClassPool;
-
/**
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
@@ -69,7 +70,9 @@
{
return false;
}
- if (parentURL.equals(foundURL))
+ URI parentURI = URI.create(parentURL.toString());
+ URI foundURI = URI.create(foundURL.toString());
+ if (parentURI.equals(foundURI))
{
return true;
}
Modified: projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/ClassPoolRepository.java
===================================================================
--- projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/ClassPoolRepository.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/ClassPoolRepository.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -89,7 +89,7 @@
* @param callback the callback object
* @see ClassPoolRepositoryCallback
*/
- public void setClassPoolRepositoryCallback(ClassPoolRepositoryCallback callback)
+ public synchronized void setClassPoolRepositoryCallback(ClassPoolRepositoryCallback callback)
{
this.callback = callback;
}
@@ -98,7 +98,7 @@
* Returns the callback object.
* @return the callback object. May be {@code null}
*/
- public ClassPoolRepositoryCallback getClassPoolRepositoryCallback()
+ public synchronized ClassPoolRepositoryCallback getClassPoolRepositoryCallback()
{
return this.callback;
}
Modified: projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/SecurityActions.java
===================================================================
--- projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/SecurityActions.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/classpool/src/main/java/org/jboss/classpool/spi/SecurityActions.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -34,7 +34,7 @@
{
public static class GetContextClassLoaderAction implements PrivilegedAction<ClassLoader>
{
- public static GetContextClassLoaderAction INSTANCE = new GetContextClassLoaderAction();
+ public static final GetContextClassLoaderAction INSTANCE = new GetContextClassLoaderAction();
public ClassLoader run()
{
Modified: projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPool.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPool.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPool.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -63,7 +63,7 @@
}
this.module = new WeakReference<Module>(module);
this.callback = callback;
- toClassInvoker = new ToClassInvoker(module == null ? null : module.getDynamicClassRoot());
+ toClassInvoker = new ToClassInvoker(module.getDynamicClassRoot());
if (logger.isTraceEnabled()) logger.trace(this + " module");
((JBossClClassPoolDomain)domain).setupPoolsByPackage(this);
}
Modified: projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPoolRepository.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPoolRepository.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/JBossClDelegatingClassPoolRepository.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -45,8 +45,6 @@
public class JBossClDelegatingClassPoolRepository extends ClassPoolRepository
{
- Logger logger = Logger.getLogger(this.getClass());
-
private final static JBossClDelegatingClassPoolRepository instance = new JBossClDelegatingClassPoolRepository();
/**
Modified: projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/VFSClassLoaderDomainRegistry.java
===================================================================
--- projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/VFSClassLoaderDomainRegistry.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/jbosscl/src/main/java/org/jboss/classpool/plugins/jbosscl/VFSClassLoaderDomainRegistry.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -73,7 +73,7 @@
/**
* Needed for the tests, not expected to be needed in production
*/
- public void setSystem(ClassLoaderSystem system)
+ public synchronized void setSystem(ClassLoaderSystem system)
{
this.system = system;
}
@@ -81,7 +81,7 @@
/**
* Needed for the tests, not expected to be needed in production
*/
- public void setDefaultDomain(ClassLoaderDomain domain)
+ public synchronized void setDefaultDomain(ClassLoaderDomain domain)
{
this.defaultDomain = domain;
}
Modified: projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/JBossClassPoolFactory.java
===================================================================
--- projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/JBossClassPoolFactory.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/JBossClassPoolFactory.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -102,16 +102,20 @@
public File createTempDir(ClassLoader cl) throws IOException
{
File tempdir = File.createTempFile("ucl", "", tmpClassesDir);
- tempdir.delete();
- tempdir.mkdir();
+ if (!tempdir.exists() || tempdir.delete())
+ {
+ if (!tempdir.mkdir())
+ {
+ throw new IOException("Cannot create temp dir: " + tempdir);
+ }
+ }
tempdir.deleteOnExit();
-
return tempdir;
}
private URL createURLAndAddToLoader(ClassLoader cl, File tempdir) throws IOException
{
- URL tmpURL = tempdir.toURL();
+ URL tmpURL = tempdir.toURI().toURL();
URL tmpCP = new URL(tmpURL, "?dynamic=true");
RepositoryClassLoader ucl = (RepositoryClassLoader) cl;
Modified: projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/LoaderRepositoryUrlUtil.java
===================================================================
--- projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/LoaderRepositoryUrlUtil.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/LoaderRepositoryUrlUtil.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -21,6 +21,7 @@
*/
package org.jboss.classpool.plugins.ucl;
+import java.net.URI;
import java.net.URL;
import javax.management.InstanceNotFoundException;
@@ -122,7 +123,9 @@
{
for (int j = 0 ; j < globalUrls.length ; j ++)
{
- if (scopedRepositoryUrls[i].equals(globalUrls[j]))
+ URI scopedRepositoryURI = URI.create(scopedRepositoryUrls[i].toString());
+ URI globalURI = URI.create(globalUrls[j].toString());
+ if (scopedRepositoryURI.equals(globalURI))
{
scopedLength = i;
break;
@@ -139,7 +142,7 @@
return localUrls;
}
- public class UrlInfo
+ public static class UrlInfo
{
URL[] globalUrls;
Modified: projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/ToClassInvoker.java
===================================================================
--- projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/ToClassInvoker.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/ToClassInvoker.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -72,7 +72,11 @@
classFile = new File(tmpDir, classFileName);
if (trace) logger.trace(this + " " + pool + ".toClass() myloader:" + myloader + " writing bytes to " + classFile);
File pkgDirs = classFile.getParentFile();
- pkgDirs.mkdirs();
+ if (!pkgDirs.exists() && !pkgDirs.mkdirs())
+ {
+ throw new IllegalStateException("Can't create package " +
+ "directories for creation fo class " + classFileName);
+ }
FileOutputStream stream = new FileOutputStream(classFile);
stream.write(cc.toBytecode());
stream.flush();
Modified: projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/UclDelegatingClassPoolFactory.java
===================================================================
--- projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/UclDelegatingClassPoolFactory.java 2009-12-16 18:17:02 UTC (rev 97904)
+++ projects/jboss-classpool/trunk/ucl/src/main/java/org/jboss/classpool/plugins/ucl/UclDelegatingClassPoolFactory.java 2009-12-16 18:19:30 UTC (rev 97905)
@@ -135,10 +135,14 @@
public File createTempDir(ClassLoader cl) throws IOException
{
File tempdir = File.createTempFile("ucl", "", tmpClassesDir);
- tempdir.delete();
- tempdir.mkdir();
+ if (!tempdir.exists() || tempdir.delete())
+ {
+ if (!tempdir.mkdir())
+ {
+ throw new IOException("Cannot create temp dir: " + tempdir);
+ }
+ }
tempdir.deleteOnExit();
-
return tempdir;
}
@@ -146,7 +150,7 @@
{
try
{
- URL tmpURL = tempdir.toURL();
+ URL tmpURL = tempdir.toURI().toURL();
URL tmpCP = new URL(tmpURL, "?dynamic=true");
RepositoryClassLoader ucl = (RepositoryClassLoader) cl;
More information about the jboss-cvs-commits
mailing list