diff options
author | slewis | 2018-03-15 23:04:40 +0000 |
---|---|---|
committer | slewis | 2018-03-15 23:04:40 +0000 |
commit | ad9072431abb30e725f6a1b30328b59abf6c229a (patch) | |
tree | a16a970cda48794736bd6f61cf92f939f4abfbd5 | |
parent | 9013a2c0fc21468951f105b05d2e88c1b621c7f0 (diff) | |
download | org.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
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) { |