[jboss-remoting-commits] JBoss Remoting SVN: r5197 - remoting2/branches/2.2/src/main/org/jboss/remoting.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Tue May 12 01:59:04 EDT 2009


Author: ron.sigal at jboss.com
Date: 2009-05-12 01:59:04 -0400 (Tue, 12 May 2009)
New Revision: 5197

Modified:
   remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
Log:
JBREM-1127: Introduced useCurrentThreadClassLoader variable and related behavior.

Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java	2009-05-12 05:56:17 UTC (rev 5196)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java	2009-05-12 05:59:04 UTC (rev 5197)
@@ -43,6 +43,7 @@
    private String invokerSessionID = new GUID().toString();
    private boolean parentFirstClassLoading = true;
    private boolean changeInvalidStateToCannotConnect = false;
+   private boolean useCurrentThreadClassLoader;
 
    public MicroRemoteClientInvoker(InvokerLocator locator)
    {
@@ -93,13 +94,27 @@
          // and the current thread's class loader.  This allows to load remoting classes as well as
          // user's classes.
          ClassLoader remotingClassLoader = null;
-         if (parentFirstClassLoading)
+         if (useCurrentThreadClassLoader)
          {
-            remotingClassLoader = new RemotingClassLoader(getClassLoader(), Thread.currentThread().getContextClassLoader());
+            if (parentFirstClassLoading)
+            {
+               remotingClassLoader = new RemotingClassLoader(getClassLoader(), null);
+            }
+            else
+            {
+               remotingClassLoader = new RemotingClassLoader(null, getClassLoader());
+            }
          }
          else
          {
-            remotingClassLoader = new RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
+            if (parentFirstClassLoading)
+            {
+               remotingClassLoader = new RemotingClassLoader(getClassLoader(), Thread.currentThread().getContextClassLoader());
+            }
+            else
+            {
+               remotingClassLoader = new RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
+            }
          }
          
          // try by locator (in case unmarshaller class name specified)
@@ -566,6 +581,13 @@
          String sflag = flag.toString();
          changeInvalidStateToCannotConnect = Boolean.valueOf(sflag).booleanValue();
       }
+      
+      flag = configuration.get(Remoting.USE_CURRENT_THREAD_CLASS_LOADER);
+      if (flag != null)
+      {
+         String sflag = flag.toString();
+          useCurrentThreadClassLoader = Boolean.valueOf(sflag).booleanValue();
+      }
    }
 
    /**




More information about the jboss-remoting-commits mailing list