User: sylvain
Date: 00/05/18 12:31:36
Modified: src/java/org/ejboss/container ContainerMetaData.java
Log:
Bug Fix:
We now have a unique ClassLoader per JAR.
There were problems with reactivation of passivated beans because each container of
the same JAR had classloaders which had the same visibility and the same loaded
classes, but were different.
Revision Changes Path
1.17 +15 -2 ejboss/src/java/org/ejboss/container/ContainerMetaData.java
Index: ContainerMetaData.java
===================================================================
RCS file:
/products/cvs/ejboss/ejboss/src/java/org/ejboss/container/ContainerMetaData.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ContainerMetaData.java 2000/04/21 22:43:08 1.16
+++ ContainerMetaData.java 2000/05/18 19:31:36 1.17
@@ -189,6 +189,12 @@
private boolean EJBReferencesInitialized = false;
+ /*
+ * We want only one ClassLoader per URL (JAR)
+ *
+ */
+ private static Map URLtoClassLoaderMap = Collections.synchronizedMap(new
HashMap());
+
/******************************************************************************/
/******************************************************************************/
/*
@@ -283,8 +289,15 @@
// we pass the system class loader for default loading outside the jars
- classLoader = new URLClassLoader(jars,
this.getClass().getClassLoader());
-
+ if( URLtoClassLoaderMap.containsKey(jars[0]) )
+ {
+ classLoader = (URLClassLoader)URLtoClassLoaderMap.get(jars[0]);
+ }
+ else
+ {
+ classLoader = new URLClassLoader(jars,
this.getClass().getClassLoader());
+ URLtoClassLoaderMap.put(jars[0], classLoader);
+ }
// Container specific classes
String