[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