Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2018-03-15 23:04:40 +0000
committerslewis2018-03-15 23:04:40 +0000
commitad9072431abb30e725f6a1b30328b59abf6c229a (patch)
treea16a970cda48794736bd6f61cf92f939f4abfbd5
parent9013a2c0fc21468951f105b05d2e88c1b621c7f0 (diff)
downloadorg.eclipse.ecf-ad9072431abb30e725f6a1b30328b59abf6c229a.tar.gz
org.eclipse.ecf-ad9072431abb30e725f6a1b30328b59abf6c229a.tar.xz
org.eclipse.ecf-ad9072431abb30e725f6a1b30328b59abf6c229a.zip
Additional fixes for bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=532205 Simplifications Change-Id: I548e50edf6598148c4a479ba4516979b43217e83
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/AbstractRemoteService.java5
-rw-r--r--framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/client/AbstractRSAClientService.java8
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java8
3 files changed, 5 insertions, 16 deletions
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/AbstractRemoteService.java b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/AbstractRemoteService.java
index 9b92aee46..51b8c818a 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/AbstractRemoteService.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/AbstractRemoteService.java
@@ -461,10 +461,7 @@ public abstract class AbstractRemoteService extends AbstractAsyncProxyRemoteServ
* @since 8.13
*/
protected Object invokeReturnAsync(Object proxy, Method method, Object[] args) throws Throwable {
- final String invokeMethodName = method.getName();
- final AsyncArgs asyncArgs = new AsyncArgs(args, method.getReturnType());
- RemoteCall remoteCall = getAsyncRemoteCall(invokeMethodName, asyncArgs.getArgs());
- return callFuture(remoteCall, asyncArgs.getReturnType());
+ return callFuture(getAsyncRemoteCall(method.getName(), args), method.getReturnType());
}
/**
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/client/AbstractRSAClientService.java b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/client/AbstractRSAClientService.java
index aa6c4371d..bffc416eb 100644
--- a/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/client/AbstractRSAClientService.java
+++ b/framework/bundles/org.eclipse.ecf.remoteservice/src/org/eclipse/ecf/remoteservice/client/AbstractRSAClientService.java
@@ -139,14 +139,14 @@ public abstract class AbstractRSAClientService extends AbstractClientService {
}
@Override
- protected void callAsync(IRemoteCall call, IRemoteCallable callable, IRemoteCallListener listener) {
- if (call.getClass().isAssignableFrom(RSARemoteCall.class)) {
+ public void callAsync(IRemoteCall call, IRemoteCallListener listener) {
+ if (call instanceof RSARemoteCall) {
Callable<IRemoteCallCompleteEvent> c = createAsyncCallable((RSARemoteCall) call);
if (c == null)
throw new NullPointerException("createAsyncCallable returns null. Distribution provider must override createAsyncCallable"); //$NON-NLS-1$
callAsyncWithTimeout(call, c, listener);
- }
- super.callAsync(call, callable, listener);
+ } else
+ super.callAsync(call, listener);
}
/**
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
index 99cd49b49..616fdf47a 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
@@ -1449,20 +1449,12 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer
/**
* @since 4.4
*/
- @SuppressWarnings("unchecked")
protected Object invokeLocal(RemoteServiceRegistrationImpl reg, RemoteCallImpl call) throws InvocationTargetException, Exception, NoClassDefFoundError {
Object[] callArgs = call.getParameters();
Object[] args = (callArgs == null) ? SharedObjectMsg.nullArgs : callArgs;
Object service = reg.getService();
// Find appropriate method on service
final Method method = ClassUtil.getMethod(service.getClass(), call.getMethod(), SharedObjectMsg.getTypesForParameters(args));
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
- public Object run() throws Exception {
- if (!method.isAccessible())
- method.setAccessible(true);
- return null;
- }
- });
// Actually invoke method on service object
Object result = method.invoke(service, args);
if (result != null) {

Back to the top