Hi all,

Thanks for the additional suggestions. I guess the unfortunate thing
is for all of them that the JRE or framework configuration needs to be
changed before it works...

Just curious, is anyone aware of a modified/alternate version of
javax.activation that does not suffer from this problem? I know
similar things were done in the past in the Geronimo and ServiceMix
projects...

Thanks again,

David

On 22 April 2015 at 08:22, Freeman Fang <[email protected]> wrote:
> Hi David,
>
> Could you put that activation bundle into the endorsed dir so that all
> activation class and java.awt.datatransfer.DataFlavor could be loaded from
> system class loader to avoid this problem? That's what Karaf do currently,
> you can see org.apache.servicemix.specs.activation-api-1.1-2.4.0.jar in
> $KARAF_HOME/lib/endorsed.
>
> -------------
> Freeman(Yue) Fang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
>
>
>
> On 2015-4-21, at 下午9:23, David Bosschaert wrote:
>
> Hi all,
>
> Apologies for posting to the Karaf list as this is not really a Karaf
> issue, but I this list may contain people that might have come across
> this issue as well.
>
> I have some code that runs in OSGi that uses
> javax.activation.DataHandler. As this is javax... you should be able
> to provide your own bundle providing these classes. So I have a bundle
> that provides an alternative javax.activation.DataHandler. Now it
> turns out that this class has a dependency on
> java.awt.datatransfer.DataFlavor, a java.awt class! The DataFlavor
> code is kicked in from DataHandler, but then DataFlavor tries to load
> some classes too, in my case it tries to load DataHandler again. The
> code in DataFlavor tries to load classes from the System Classloader
> first, so it finds the javax.activation.DataHandler in the JRE and
> loads that -> boom LinkageError.
>
> I was wondering whether there are any 'fixed' versions of
> javax.activation that don't expose this behaviour and work properly in
> a modular environment like OSGi.
>
> Many thanks,
>
> David
>
>

Reply via email to