Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5620

Prevent LinkageError when CDI is in the classpath

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.0-alpha-1, 3.1.0, 3.1.1, 3.2.1
    • 3.2.2
    • General
    • None

    Description

      We have troubles use 'mvn jetty:run' for https://github.com/apache/wicket/tree/master/wicket-examples after upgrading to Maven 3.1.0+.

      It fails with:

      2014-04-17 16:22:57.160:WARN:oejuc.AbstractLifeCycle:FAILED org.mortbay.jetty.plugin.JettyServer@44e5b006: java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.jboss.weld.Weld.select(Ljavax/enterprise/util/TypeLiteral;[Ljava/lang/annotation/Annotation;)Ljavax/enterprise/inject/Instance;" the class loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) of the current class, org/jboss/weld/Weld, and its superclass loader (instance of org/codehaus/plexus/classworlds/realm/ClassRealm), have different Class objects for the type tion/Annotation;)Ljavax/enterprise/inject/Instance; used in the signature
      java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.jboss.weld.Weld.select(Ljavax/enterprise/util/TypeLiteral;[Ljava/lang/annotation/Annotation;)Ljavax/enterprise/inject/Instance;" the class loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) of the current class, org/jboss/weld/Weld, and its superclass loader (instance of org/codehaus/plexus/classworlds/realm/ClassRealm), have different Class objects for the type tion/Annotation;)Ljavax/enterprise/inject/Instance; used in the signature
      at org.jboss.weld.servlet.StaticWeldProvider$WeldSingleton.<clinit>(StaticWeldProvider.java:29)
      at org.jboss.weld.servlet.StaticWeldProvider.getCDI(StaticWeldProvider.java:49)
      at javax.enterprise.inject.spi.CDI.current(CDI.java:60)
      at org.jboss.weld.servlet.WeldInitialListener.contextInitialized(WeldInitialListener.java:85)
      at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextInitialized(ForwardingServletListener.java:34)
      at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:171)
      at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733)
      ...

      The issue is not new. We just noticed that when using 3.0.5 it runs fine so it should be some change in Maven itself.

      I've found that another user had the same issue: http://stackoverflow.com/a/18168215/497381

      How to reproduce:
      1) git clone https://github.com/apache/wicket.git
      2) mvn install (just to have all dependencies)
      3) cd wicket-examples
      4) mvn jetty:run (fails with 3.1.0+)

      Attachments

        Activity

          People

            jvanzyl Jason van Zyl
            mgrigorov Martin Tzvetanov Grigorov
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: