Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Communications Framework (ECF) » ClassFormatError for R-OSGi Proxy generation
ClassFormatError for R-OSGi Proxy generation [message #624066] Wed, 24 September 2008 00:40 Go to next message
Florian Georg is currently offline Florian GeorgFriend
Messages: 34
Registered: July 2009
Member
I currently get some nasty errors when R-OSGi generates the proxy
bundles for my services:



ch.ethz.iks.r_osgi.RemoteOSGiException: Could not install the generated
bundle null
at
ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.fetchService(Cha nnelEndpointImpl.java:703)
at
ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl.fetchService(R emoteOSGiServiceImpl.java:598)
at
ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl.getRemoteServi ce(RemoteOSGiServiceImpl.java:553)
at
org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteService Container.getRemoteService(R_OSGiRemoteServiceContainer.java :192)
at
org.knime.seek.server.ui.accesshandler.SEEKServiceAccessHand ler.getContributionItemsForRemoteServiceAdapter(SEEKServiceA ccessHandler.java:88)
at
org.eclipse.ecf.discovery.ui.views.AbstractRemoteServiceAcce ssHandler.getContributionItemsForConnectedContainer(Abstract RemoteServiceAccessHandler.java:156)
at
org.knime.seek.server.ui.accesshandler.SEEKServiceAccessHand ler.getContributionsForMatchingService(SEEKServiceAccessHand ler.java:67)
at
org.eclipse.ecf.discovery.ui.views.AbstractRemoteServiceAcce ssHandler.getContributionsForService(AbstractRemoteServiceAc cessHandler.java:126)
at
org.eclipse.ecf.discovery.ui.views.DiscoveryView.getContribu tionsForServiceInfo(DiscoveryView.java:308)
at
org.eclipse.ecf.discovery.ui.views.DiscoveryView.fillContext Menu(DiscoveryView.java:273)
at
org.eclipse.ecf.discovery.ui.views.DiscoveryView$11.menuAbou tToShow(DiscoveryView.java:323)
at

[...]


Caused by: java.lang.ClassFormatError: Illegal class name
"[[Ljava/lang/String;;" in class file
proxy/bchoaoaob_jchige/org/knime/seek/core/IPlatformInfoServ iceImpl
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.def ineClass(DefaultClassLoader.java:165)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineC lass(ClasspathManager.java:554)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findCla ssImpl(ClasspathManager.java:524)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClassImpl(ClasspathManager.java:455)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass_LockClassLoader(ClasspathManager.java:443)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:423)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:193)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findLo calClass(BundleLoader.java:368)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findCl assInternal(BundleLoader.java:444)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findCl ass(BundleLoader.java:397)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.findCl ass(BundleLoader.java:385)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:87)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.loadCl ass(BundleLoader.java:313)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:227)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.load BundleActivator(AbstractBundle.java:139)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:980)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:265)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:257)
at
ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.fetchService(Cha nnelEndpointImpl.java:698)
... 50 more






The strange thing is that it seems to work for other interfaces quite well.

The only thing I do special is that I register the same service
implementation for all of the implemented interfaces (up the hierarchy).

So, the class mentioned above looks like this:

public class PlatformInfoServiceCommandProviderImpl extends
PlatformInfoServiceImpl implements CommandProvider {
[...]

The class hierarchy is like this:

AbstractPlatformInfoService <-- implements IPlatformInfoService
(the service interface)
PlatformInfoServiceImpl
PlatformInfoServiceCommandProviderImpl <-- service class


Strangely, the proxy generation for CommandProvider works just fine.

Any ideas why R-OSGi is generating invalid bytecode for my interfaces?


thanks in advance & kind regards
Florian
Re: ClassFormatError for R-OSGi Proxy generation [message #624278 is a reply to message #624066] Tue, 21 October 2008 23:57 Go to previous message
Jan S. Rellermeyer is currently offline Jan S. RellermeyerFriend
Messages: 2
Registered: July 2009
Junior Member
I think you ran into a bug that this version of R-OSGi had. You can try the
current R-OSGi trunk from sourceforge.

Cheers,

Jan.

"Florian Georg" <florian.georg.nospam@ch.ibm.com> wrote in message
news:gbc2ap$18p$1@build.eclipse.org...
>I currently get some nasty errors when R-OSGi generates the proxy bundles
>for my services:
>
>
>
> ch.ethz.iks.r_osgi.RemoteOSGiException: Could not install the generated
> bundle null
> at
> ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.fetchService(Cha nnelEndpointImpl.java:703)
> at
> ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl.fetchService(R emoteOSGiServiceImpl.java:598)
> at
> ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl.getRemoteServi ce(RemoteOSGiServiceImpl.java:553)
> at
> org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteService Container.getRemoteService(R_OSGiRemoteServiceContainer.java :192)
> at
> org.knime.seek.server.ui.accesshandler.SEEKServiceAccessHand ler.getContributionItemsForRemoteServiceAdapter(SEEKServiceA ccessHandler.java:88)
> at
> org.eclipse.ecf.discovery.ui.views.AbstractRemoteServiceAcce ssHandler.getContributionItemsForConnectedContainer(Abstract RemoteServiceAccessHandler.java:156)
> at
> org.knime.seek.server.ui.accesshandler.SEEKServiceAccessHand ler.getContributionsForMatchingService(SEEKServiceAccessHand ler.java:67)
> at
> org.eclipse.ecf.discovery.ui.views.AbstractRemoteServiceAcce ssHandler.getContributionsForService(AbstractRemoteServiceAc cessHandler.java:126)
> at
> org.eclipse.ecf.discovery.ui.views.DiscoveryView.getContribu tionsForServiceInfo(DiscoveryView.java:308)
> at
> org.eclipse.ecf.discovery.ui.views.DiscoveryView.fillContext Menu(DiscoveryView.java:273)
> at
> org.eclipse.ecf.discovery.ui.views.DiscoveryView$11.menuAbou tToShow(DiscoveryView.java:323)
> at
>
> [...]
>
>
> Caused by: java.lang.ClassFormatError: Illegal class name
> "[[Ljava/lang/String;;" in class file
> proxy/bchoaoaob_jchige/org/knime/seek/core/IPlatformInfoServ iceImpl
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.def ineClass(DefaultClassLoader.java:165)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineC lass(ClasspathManager.java:554)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findCla ssImpl(ClasspathManager.java:524)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClassImpl(ClasspathManager.java:455)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass_LockClassLoader(ClasspathManager.java:443)
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:423)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:193)
> at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findLo calClass(BundleLoader.java:368)
> at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findCl assInternal(BundleLoader.java:444)
> at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findCl ass(BundleLoader.java:397)
> at
> org.eclipse.osgi.framework.internal.core.BundleLoader.findCl ass(BundleLoader.java:385)
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:87)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.eclipse.osgi.framework.internal.core.BundleLoader.loadCl ass(BundleLoader.java:313)
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:227)
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.load BundleActivator(AbstractBundle.java:139)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:980)
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:346)
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:265)
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:257)
> at
> ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.fetchService(Cha nnelEndpointImpl.java:698)
> ... 50 more
>
>
>
>
>
>
> The strange thing is that it seems to work for other interfaces quite
> well.
>
> The only thing I do special is that I register the same service
> implementation for all of the implemented interfaces (up the hierarchy).
>
> So, the class mentioned above looks like this:
>
> public class PlatformInfoServiceCommandProviderImpl extends
> PlatformInfoServiceImpl implements CommandProvider {
> [...]
>
> The class hierarchy is like this:
>
> AbstractPlatformInfoService <-- implements IPlatformInfoService
> (the service interface)
> PlatformInfoServiceImpl
> PlatformInfoServiceCommandProviderImpl <-- service class
>
>
> Strangely, the proxy generation for CommandProvider works just fine.
>
> Any ideas why R-OSGi is generating invalid bytecode for my interfaces?
>
>
> thanks in advance & kind regards
> Florian
Previous Topic:Reminder: ECF conference call 10/21/2008 7am pacific time
Next Topic:CoFFEE software, based on ECF
Goto Forum:
  


Current Time: Sat Dec 20 21:00:47 GMT 2014

Powered by FUDForum. Page generated in 0.02805 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software