[jboss-cvs] JBossAS SVN: r95964 - projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 3 11:35:13 EST 2009


Author: jesper.pedersen
Date: 2009-11-03 11:35:13 -0500 (Tue, 03 Nov 2009)
New Revision: 95964

Modified:
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelClassLoader.java
   projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java
Log:
[JBJCA-213] KernelClassLoader should implement Closeable

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelClassLoader.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelClassLoader.java	2009-11-03 16:19:44 UTC (rev 95963)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelClassLoader.java	2009-11-03 16:35:13 UTC (rev 95964)
@@ -22,6 +22,8 @@
 
 package org.jboss.jca.fungal.impl;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.concurrent.ConcurrentHashMap;
@@ -31,7 +33,7 @@
  * Kernel class loader
  * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
  */
-public class KernelClassLoader extends URLClassLoader
+public class KernelClassLoader extends URLClassLoader implements Closeable
 {
    /** Simple types */
    private static ConcurrentMap<String, Class<?>> simpleTypes = new ConcurrentHashMap<String, Class<?>>(9);
@@ -73,4 +75,21 @@
 
       return loadClass(name, false);
    }
+
+   /**
+    * Close - no operation as shutdown needs to be called explicit
+    * @exception IOException Thrown if an error occurs
+    */
+   public void close() throws IOException
+   {
+   }
+
+   /**
+    * Shutdown
+    * @exception IOException Thrown if an error occurs
+    */
+   public void shutdown() throws IOException
+   {
+      // Implement this by calling super.close() when JDK7
+   }
 }

Modified: projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java
===================================================================
--- projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java	2009-11-03 16:19:44 UTC (rev 95963)
+++ projects/jboss-jca/trunk/fungal/src/main/java/org/jboss/jca/fungal/impl/KernelImpl.java	2009-11-03 16:35:13 UTC (rev 95964)
@@ -26,7 +26,6 @@
 import org.jboss.jca.fungal.deployers.Deployment;
 import org.jboss.jca.fungal.impl.remote.CommunicationServer;
 
-import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
@@ -312,12 +311,12 @@
          recursiveDelete(root);
       }
 
-      // Reset class loader
-      if (kernelClassLoader != null && kernelClassLoader instanceof Closeable)
+      // Shutdown kernel class loader
+      if (kernelClassLoader != null)
       {
          try
          {
-            ((Closeable)kernelClassLoader).close();
+            kernelClassLoader.shutdown();
          }
          catch (IOException ioe)
          {
@@ -325,6 +324,7 @@
          }
       }
 
+      // Reset to the old class loader
       SecurityActions.setThreadContextClassLoader(oldClassLoader);
    }
 




More information about the jboss-cvs-commits mailing list