On Mon, Feb 13, 2012 at 4:00 AM, Ed Willink <[email protected]> wrote:

>
> Xtext gives me a dependency that loads com.google.guava_10.0.1.1.jar.
> Acceleo gives me a dependency that loads
> com.google.collect_1.0.0.v201105210816.jar
>
> Both provide com.google.common.collect.SetMultimap so I'm not surprised
> that Hudson gives me:
>
> java.lang.LinkageError: loader constraint violation: loader (instance of
> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated
> loading for a different type with name "com/google/common/collect/SetMultimap"
>
>
> Usually with 2 bundles supplying the same package you'll see
ClassCastException (from SetMultipmap to SetMultimap, a head scratcher :-)
That this is a linkage indicates that some configuration of the bundles is
causing the same classloader to try and load the same class from 2
different locations.  Maybe one of the Equinox guys can suggest what kind
of configuration might cause this error?

Did Guava absorb com.google.collect, and that's why it includes those
packages (instead of consuming them from the next version of the
com.google.collect bundle)?



> I see the problem in an JUnit test run as a plugin test. The same JUnit
> test run as an ordinary test has no problem, so perhaps there is a relative
> loading order of com.google.guava and com.google.collect that can be
> enforced to avoid the problem.
>
>
For a regular JUnit test, it's standard classpath rules ... it'll load the
first class it finds on the classpath.  Whatever order the jars appear,
it's happy with them.  Fixing them for JUnit Plugin tests probably means
making sure that 1) com.google.collect and com.google.guava are both
correctly versioned and export their packages versioned (it sounds like
they do) and 2) the plugins that consume them are also following OSGi
conventions (set a minimum baseline, don't re-export any packages, use
Import-Package if possible).

Later,
PW

-- 
Paul Webster
Hi floor.  Make me a sammich! - GIR
_______________________________________________
cross-project-issues-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

Reply via email to