[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Bootdelegation question

We've come across a problem in which the osgi.compatibility.bootdelegation property might work for us. We noticed that intermittently, we get a CNFE from one of our bundle's start() methods when it tries to load one of our own classes from a jar that is on the boot classpath (not a part of a plugin). Is this a known issue and do you think in this case that the osgi.compatibility.bootdelegation property would work? Unfortunately, this isn't easily reproducible and just seems to happen at random.

We're running on eclipse 3.2.2. I saw that this property isn't documented until eclipse 3.3. Was this ever back-ported?

Jennifer Carlucci
Lightweight Infrastructure

Got it! Woks fine now.thx
On Oct 8, 2008, at 2:06 PM, Thomas Watson wrote:

See the osgi.compatibility.bootdelegation option in the Eclipse Help.

osgi.compatibility.bootdelegation - if set to "true" then the parent (boot by default) classloader is delegated to as a last resort if a class or resource cannot be found. The default value is "true".

When launching Equinox under Eclipse the org.eclipse.equinox.launcher is used to launch the framework (just like when you launch a normal Eclipse SDK instance). Launching equinox this way enables the boot delegation compatibility flag by default. Launching equinox with "-jar org.eclipse.osgi ..." disables this option and Equinox will use strict OSGi delegation rules for boot delegation.


Oleg Zhurakousky ---10/08/2008 12:49:27 PM---Thanks guys!!! Looks like starting Equinox under Eclipse makes the difference, although I can't see what that would be (checked

Oleg Zhurakousky <
Equinox development mailing list <
10/08/2008 12:49 PM
Re: [equinox-dev] Bootdelegation question

Thanks guys!!!
Looks like starting Equinox under Eclipse makes the difference, although I can't see what that would be (checked generated config.ini etc. . . nothing suspicious)
Starting the same system bundle from the command line renders the expected results:

> java -Dorg.osgi.framework.bootdelegation=org.w3c.* -jar org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar -console -clean

id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.2.R34x_v20080826-1230
1 INSTALLED OSGiBootDelegationBundle_1.0.0

osgi> start 1
class java.lang.String
interface org.w3c.dom.Attr

If bootdelegation option is removed CNFE is thrown during start of the bundle


On Oct 8, 2008, at 12:57 PM, Stuart McCulloch wrote:

2008/10/9 Oleg Zhurakousky <oleg.zhurakousky@xxxxxxxxxxxxxxxx>
Nice to find you here Rob

Yes I am certain (here are all the options that are set)

One thing I will admit that I am running Equinox within eclipse pde. I'll try from the command line (not sure if it would make the difference)

see also:
(IIRC Equinox doesn't run in "strict" OSGi mode by default...)


On Oct 8, 2008, at 12:36 PM, Rob Harrop wrote:


Are you certain that the Equinox you are running in doesn't have the boot delegation set to include org.w3c.*?


----- "Oleg Zhurakousky" <
oleg.zhurakousky@xxxxxxxxxxxxxxxx> wrote:
If I am reading the spec correctly only java.* are loaded from the
boot class path. All other packages must be declared
with explicit imports.
So something like this without
specifying org.osgi.framework.bootdelegation=org.w3c.*

public void start(BundleContext context) throws Exception {
System. out .println(Class.forName( "java.lang.String" ));
System. out .println(Class.forName( "org.w3c.dom.Attr" ));
should result in CNFE on the second line.

Well, it actually works just fine without bootdelegation option. I
figured I missed something, so may be some one can steer me in the
right direction.
equinox-dev mailing list


Rob Harrop

Registered in England & Wales - Registration Number 5187766
Registered Office: A2 Yeoman Gate, Yeoman Way, Worthing, West Sussex, BN13 3QZ, UK

This e-mail and any attachments transmitted with it are strictly confidential and intended solely for the person or entity to whom they are addressed. Unauthorised use, copying, disclosure or distribution is prohibited. If you receive this e-mail in error please notify the sender immediately and then delete it along with any attachments. E-mails should be checked by the recipient to ensure that there are no viruses and Interface21 does not accept any responsibility if this is not done. Any views or opinions presented are solely those of the author and do not necessarily represent those of Interface21.