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

Prevent LinkageError when CDI is in the classpath

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.0-alpha-1, 3.1.0, 3.1.1, 3.2.1
    • Fix Version/s: 3.2.2
    • Component/s: General
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: