Q7

Dependency to guava in Q7 Runtime

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 1.3.3
  • Fix Version/s: 1.3.4
  • Component/s: Runtime
  • Labels:
    None
  • Test Mode:
    Manual

Description

One of our customers uses AUT with guava and guice. Since guava libraries have different versions, both of them are present in AUT. As a result, the following error happens:

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/Multimap" 
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getDeclaredMethods(Class.java:1791)
    at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:662)
    at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:356)
    at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:151)
    at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:585)
    at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:543)
    at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:529)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
    at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853)
    at com.google.inject.internal.FactoryProxy.notify(FactoryProxy.java:46)
    at com.google.inject.internal.ProcessedBindingData.runCreationListeners(ProcessedBindingData.java:50)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:133)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.extol.ebi.sqlaccess.ui.xtext.internal.SqlAccessActivator.createInjector(SqlAccessActivator.java:67)

To avoid such errors in the future, it is better to get rid of guava in Q7 Runtime, as it must work with any AUT without any modifications.

Activity

Transition Time In Source Status Execution Times Last Executer Last Execution Date
Open Open Resolved Resolved
3h 10m 1 komaz 27/Jun/13 1:30 PM

People

  • Assignee:
    komaz
    Reporter:
    komaz
Vote (0)
Watch (0)

Dates

  • Created:
    27/Jun/13 10:20 AM
    Updated:
    27/Jun/13 1:30 PM
    Resolved:
    27/Jun/13 1:30 PM