You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Grant McDonald (JIRA)" <ji...@codehaus.org> on 2008/06/30 14:29:27 UTC

[jira] Issue Comment Edited: (WAGON-60) wagon-webdav fails with commons-logging classloader issues

    [ http://jira.codehaus.org/browse/WAGON-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=139971#action_139971 ] 

gmcdonald edited comment on WAGON-60 at 6/30/08 7:27 AM:
--------------------------------------------------------------

This is reproducible on maven 2.0.9

This issue appears to relate to how the extension class loader is populated.  By having the extension class loader include commons-logging this conflicts where this is also included by the other reactors such as the reporting plugins.  From the webdav-wagon pom:

  <dependencies>
    <dependency>
      <groupId>slide</groupId>
      <artifactId>slide-webdavlib</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.0.4</version>
      <scope>runtime</scope>
    </dependency>

And from the debug output:

[DEBUG] Adding managed dependencies for unknown:wagon-webdav
[DEBUG]   org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2
[DEBUG]   org.apache.maven.wagon:wagon-ssh-common-test:jar:1.0-beta-2:test
[DEBUG]   org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2
[DEBUG]   org.apache.maven.wagon:wagon-provider-test:jar:1.0-beta-2
[DEBUG]   junit:junit:jar:3.8.1
[DEBUG]   org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4
[DEBUG]   org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8
[DEBUG]   org.codehaus.plexus:plexus-utils:jar:1.0.4
[DEBUG] com.bglobal:acore:jar:1.0-SNAPSHOT (selected for null)
[DEBUG]   slide:slide-webdavlib:jar:2.1:runtime (selected for runtime)
[DEBUG]     commons-httpclient:commons-httpclient:jar:2.0.2:runtime (selected for runtime)
[DEBUG]       commons-logging:commons-logging:jar:1.0.3:runtime (selected for runtime)
[DEBUG]     jdom:jdom:jar:1.0:runtime (selected for runtime)
[DEBUG]     de.zeigermann.xml:xml-im-exporter:jar:1.1:runtime (selected for runtime)
[DEBUG]   commons-logging:commons-logging:jar:1.0.3:runtime (removed - nearer found: 1.0.4)
[DEBUG]   commons-logging:commons-logging:jar:1.0.4:runtime (selected for runtime)

      was (Author: gmcdonald):
    This issue appears to relate to how the extension class loader is populated.  By having the extension class loader include commons-logging this conflicts where this is also included by the other reactors such as the reporting plugins.  From the webdav-wagon pom:

  <dependencies>
    <dependency>
      <groupId>slide</groupId>
      <artifactId>slide-webdavlib</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.0.4</version>
      <scope>runtime</scope>
    </dependency>

And from the debug output:

[DEBUG] Adding managed dependencies for unknown:wagon-webdav
[DEBUG]   org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2
[DEBUG]   org.apache.maven.wagon:wagon-ssh-common-test:jar:1.0-beta-2:test
[DEBUG]   org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2
[DEBUG]   org.apache.maven.wagon:wagon-provider-test:jar:1.0-beta-2
[DEBUG]   junit:junit:jar:3.8.1
[DEBUG]   org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4
[DEBUG]   org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8
[DEBUG]   org.codehaus.plexus:plexus-utils:jar:1.0.4
[DEBUG] com.bglobal:acore:jar:1.0-SNAPSHOT (selected for null)
[DEBUG]   slide:slide-webdavlib:jar:2.1:runtime (selected for runtime)
[DEBUG]     commons-httpclient:commons-httpclient:jar:2.0.2:runtime (selected for runtime)
[DEBUG]       commons-logging:commons-logging:jar:1.0.3:runtime (selected for runtime)
[DEBUG]     jdom:jdom:jar:1.0:runtime (selected for runtime)
[DEBUG]     de.zeigermann.xml:xml-im-exporter:jar:1.1:runtime (selected for runtime)
[DEBUG]   commons-logging:commons-logging:jar:1.0.3:runtime (removed - nearer found: 1.0.4)
[DEBUG]   commons-logging:commons-logging:jar:1.0.4:runtime (selected for runtime)
  
> wagon-webdav fails with commons-logging classloader issues
> ----------------------------------------------------------
>
>                 Key: WAGON-60
>                 URL: http://jira.codehaus.org/browse/WAGON-60
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-webdav
>    Affects Versions: 1.0-beta-1
>         Environment: maven 2.0.4
>            Reporter: Yuri Schimke
>            Assignee: Carlos Sanchez
>            Priority: Critical
>
> I tried it with a build extension and also putting jars in $M2_HOME/lib, but both ways I get classloader issues with commons-logging.
> My project uses commons logging and I've seen at least one other report that it can be a problem.
> with things in lib:
> Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.) (Caused by org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.))
>         at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
>         at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
>         at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
>         at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:69)
>         ... 30 more
> Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.)
>         at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
>         at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
>         ... 34 more
> Caused by: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
>         at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:385)
> using build extension:
> java.lang.ExceptionInInitializerError
>         at org.apache.webdav.lib.WebdavSession.getSessionInstance(WebdavSession.java:145)
>         at org.apache.webdav.lib.WebdavSession.getSessionInstance(WebdavSession.java:127)
>         at org.apache.webdav.lib.WebdavResource.setClient(WebdavResource.java:1273)
>         at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1298)
>         at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1320)
>         at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1408)
>         at org.apache.webdav.lib.WebdavResource.<init>(WebdavResource.java:290)
>         at org.apache.maven.wagon.providers.webdav.CorrectedWebdavResource.<init>(CorrectedWebdavResource.java:52)
>         at org.apache.maven.wagon.providers.webdav.WebDavWagon.openConnection(WebDavWagon.java:139)
>         at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:143)
>         at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:106)
>         at org.apache.maven.plugins.site.SiteDeployMojo.execute(SiteDeployMojo.java:132)
>         at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
>         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log
>         at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)
>         at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
>         at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
>         at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:69)
>         ... 30 more
> Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log
>         at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:416)
>         at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
>         ... 34 more
> Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log
>         at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412)
>         ... 35 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira