[jboss-remoting-commits] JBoss Remoting SVN: r3472 - remoting2/branches/2.x/src/main/org/jboss/remoting/loading.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Fri Feb 22 04:37:18 EST 2008
Author: ron.sigal at jboss.com
Date: 2008-02-22 04:37:18 -0500 (Fri, 22 Feb 2008)
New Revision: 3472
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/loading/RemotingClassLoader.java
Log:
JBREM-900: Introduced reference counter.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/loading/RemotingClassLoader.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/loading/RemotingClassLoader.java 2008-02-22 09:36:22 UTC (rev 3471)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/loading/RemotingClassLoader.java 2008-02-22 09:37:18 UTC (rev 3472)
@@ -31,6 +31,7 @@
public class RemotingClassLoader extends ClassLoader
{
private ClassLoader userClassLoader = null;
+ private int referenceCounter;
protected static final Logger log = Logger.getLogger(RemotingClassLoader.class);
protected static final boolean isTrace = log.isTraceEnabled();
@@ -39,7 +40,28 @@
{
super(remotingClassLoader);
this.userClassLoader = userClassLoader;
+ referenceCounter = 1;
}
+
+ public synchronized void setUserClassLoader(ClassLoader userClassLoader)
+ throws Exception
+ {
+ if (userClassLoader == null)
+ {
+ this.userClassLoader = userClassLoader;
+ }
+ else if (this.userClassLoader != userClassLoader)
+ {
+ throw new Exception("Attempting to change existing userClassLoader");
+ }
+ referenceCounter++;
+ }
+
+ public synchronized void unsetUserClassLoader()
+ {
+ if (--referenceCounter == 0)
+ userClassLoader = null;
+ }
public Class loadClass(String name) throws ClassNotFoundException
{
More information about the jboss-remoting-commits
mailing list