[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] Using native datatypes as method parameters
|
On 02/21/2011 01:37 PM, Fabian Meyer wrote:
> Hi,
>
> is it possible to use primitive data types as method parameter in ECF?
> It seems to me that the deserialization of the shared message objects
> doesn't work correctly. A java.lang.NoSuchMethodException is always
> thrown, because ECF is trying to find a method with "class
> java.lang.Integer" as parameter data type instead of the primitive int
> data type. I wrote a little example application:
>
> Interface:
> public interface Test {
> void doSomething(int pBla);
> }
>
> Server:
> public void start(BundleContext bundleContext) throws Exception {
> Activator.context = bundleContext;
> Properties props = new Properties();
> props.put("service.exported.interfaces", "*");
> context.registerService(Test.class.getName(), new Test() {
>
> @Override
> public void doSomething(int pBla) {
>
> }
> }, props);
> }
>
> Client:
> Test t = (Test) getContext().getService(reference);
> t.doSomething(42);
>
> Throws:
> java.lang.NoSuchMethodException: No such method: doSomething([class
> java.lang.Integer])
> at
> org.eclipse.ecf.core.sharedobject.SharedObjectMsg.doInvoke(SharedObjectMsg.java:310)
> at
> org.eclipse.ecf.core.sharedobject.SharedObjectMsg.invoke(SharedObjectMsg.java:290)
> at
> org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceRegistrationImpl.callService(RemoteServiceRegistrationImpl.java:342)
> at
> org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject$11.run(RegistrySharedObject.java:1423)
> at
> org.eclipse.equinox.concurrent.future.SingleOperationFuture$1.run(SingleOperationFuture.java:96)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at
> org.eclipse.equinox.concurrent.future.SingleOperationFuture.runWithProgress(SingleOperationFuture.java:89)
> at
> org.eclipse.ecf.core.jobs.JobsExecutor.safeRun(JobsExecutor.java:52)
> at
> org.eclipse.ecf.core.jobs.JobsExecutor$1.run(JobsExecutor.java:79)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
> Configuration:
> JDK 1.6_20
> ECF 1.4 with patch for Eclipse 3.5, 3.6
https://bugs.eclipse.org/331383 might be related too.
Markus