tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rf...@apache.org
Subject svn commit: r781243 - /tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
Date Wed, 03 Jun 2009 03:03:38 GMT
Author: rfeng
Date: Wed Jun  3 03:03:38 2009
New Revision: 781243

URL: http://svn.apache.org/viewvc?rev=781243&view=rev
Log:
Remove cache of RMI proxy

Modified:
    tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java

Modified: tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java?rev=781243&r1=781242&r2=781243&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
(original)
+++ tuscany/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIBindingInvoker.java
Wed Jun  3 03:03:38 2009
@@ -6,15 +6,15 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License.    
+ * under the License.
  */
 package org.apache.tuscany.sca.binding.rmi.provider;
 
@@ -39,7 +39,7 @@
     private RMIHost rmiHost;
     private String uri;
     private Method remoteMethod;
-    private Remote proxy;
+    // private Remote proxy;
 
     public RMIBindingInvoker(RMIHost rmiHost, String uri, Method remoteMethod) {
         this.rmiHost = rmiHost;
@@ -65,28 +65,28 @@
 
     public Object invokeTarget(final Object payload) throws InvocationTargetException, SecurityException,
         NoSuchMethodException, IllegalArgumentException, IllegalAccessException {
-        if (proxy == null) {
-            final Class<?> remote = remoteMethod.getDeclaringClass();
-            final ClassLoader stubClassLoader = remote.getClassLoader();
-            // The generated remote interface is not available for the service lookup
-            final ClassLoader tccl = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
{
+        Remote proxy = null;
+        final Class<?> remote = remoteMethod.getDeclaringClass();
+        final ClassLoader stubClassLoader = remote.getClassLoader();
+        // The generated remote interface is not available for the service lookup
+        final ClassLoader tccl = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
{
+            public ClassLoader run() {
+                ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+                Thread.currentThread().setContextClassLoader(stubClassLoader);
+                return tccl;
+            }
+        });
+        try {
+            // The proxy cannot be cached as the remote services can be rebound
+            proxy = rmiHost.findService(uri);
+        } finally {
+            AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
                 public ClassLoader run() {
-                    ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-                    Thread.currentThread().setContextClassLoader(stubClassLoader);
-                    return tccl;
+                    ClassLoader current = Thread.currentThread().getContextClassLoader();
+                    Thread.currentThread().setContextClassLoader(tccl);
+                    return current;
                 }
             });
-            try {
-                proxy = rmiHost.findService(uri);
-            } finally {
-                AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
-                    public ClassLoader run() {
-                        ClassLoader current = Thread.currentThread().getContextClassLoader();
-                        Thread.currentThread().setContextClassLoader(tccl);
-                        return current;
-                    }
-                });
-            }
         }
 
         remoteMethod = proxy.getClass().getMethod(remoteMethod.getName(), remoteMethod.getParameterTypes());



Mime
View raw message