[ 
http://jira.codehaus.org/browse/MNG-4925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bentmann closed MNG-4925.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0.2
         Assignee: Benjamin Bentmann

Fixed in [r1042237|http://svn.apache.org/viewvc?view=revision&revision=1042237].

> Mismanagement of container lookup realm can cause type incompatibilities for 
> plugins looking up components by string
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4925
>                 URL: http://jira.codehaus.org/browse/MNG-4925
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>    Affects Versions: 3.0.1
>            Reporter: Benjamin Bentmann
>            Assignee: Benjamin Bentmann
>             Fix For: 3.0.2
>
>         Attachments: modello-regression.zip
>
>
> Originally reported as 
> [MNGECLIPSE-2507|https://issues.sonatype.org/browse/MNGECLIPSE-2507] but is 
> actually a core issue.
> To reproduce, copy {{plexus-build-api-0.0.6.jar}} into the {{lib}} directory 
> of a Maven 3.0.1 distro and run {{mvn generate-sources}} (without clean!) on 
> the attached project. This dies with
> {noformat}
> INFO] Scanning for projects...
> INFO]
> INFO] ------------------------------------------------------------------------
> INFO] Building modello-regression 1.0-SNAPSHOT
> INFO] ------------------------------------------------------------------------
> INFO]
> INFO] --- modello-maven-plugin:1.4.1:java (myModel) @ modello-regression ---
> INFO] outputDirectory: 
> M:\downloads\modello-regression\target\generated-sources\modello
> INFO] Working on model: src/main/mdo/myModel.mdo
> INFO] Generating current version: 1.0.0
> WARNING] Error contextualizing: class 
> org.codehaus.modello.plugin.java.JavaModelloGenerator
> ava.lang.ClassCastException: 
> org.sonatype.plexus.build.incremental.DefaultBuildContext cannot be cast to 
> org.sonatype.plexus.build.incremental.BuildContext
>        at 
> org.codehaus.modello.plugin.AbstractModelloGenerator.contextualize(AbstractModelloGenerator.java:288)
>        at 
> org.codehaus.plexus.PlexusLifecycleManager.contextualize(PlexusLifecycleManager.java:247)
>        at 
> org.codehaus.plexus.PlexusLifecycleManager.manageLifecycle(PlexusLifecycleManager.java:223)
>        at 
> org.codehaus.plexus.PlexusLifecycleManager.manage(PlexusLifecycleManager.java:134)
>        at 
> org.sonatype.guice.plexus.binders.PlexusBeanBinder.afterInjection(PlexusBeanBinder.java:79)
>        at 
> com.google.inject.internal.MembersInjectorImpl.notifyListeners(MembersInjectorImpl.java:97)
>        at 
> com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:95)
>        at 
> com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:253)
>        at 
> com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:949)
>        at 
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1002)
>        at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:945)
>        at 
> com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:984)
>        at 
> org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
>        at 
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>        at 
> com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:949)
>        at 
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:995)
>        at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:945)
>        at com.google.inject.Scopes$1$1.get(Scopes.java:59)
>        at 
> org.sonatype.guice.bean.locators.LazyQualifiedBean.getValue(LazyQualifiedBean.java:66)
>        at 
> org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:54)
>        at java.util.AbstractMap.get(AbstractMap.java:165)
>        at 
> org.codehaus.modello.plugin.AbstractPluginManager.getPlugin(AbstractPluginManager.java:60)
>        at 
> org.codehaus.modello.core.DefaultGeneratorPluginManager.getGeneratorPlugin(DefaultGeneratorPluginManager.java:39)
>        at 
> org.codehaus.modello.core.DefaultModelloCore.generate(DefaultModelloCore.java:376)
>        at 
> org.codehaus.modello.maven.AbstractModelloGeneratorMojo.doExecute(AbstractModelloGeneratorMojo.java:266)
>        at 
> org.codehaus.modello.maven.AbstractModelloGeneratorMojo.execute(AbstractModelloGeneratorMojo.java:220)
>        at 
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
>        at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)
>        at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
>        at 
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)
>        at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
>        at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
>        at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
>        at 
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
>        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:316)
>        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
>        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:451)
>        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:188)
>        at org.apache.maven.cli.MavenCli.main(MavenCli.java:134)
>        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:597)
>        at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
>        at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
>        at 
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
>        at 
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> {noformat}
> Here, the {{DefaultBuildContext}} (and its contract interface 
> {{BuildContext}}) got erroneously loaded from the core realm instead of the 
> plugin realm.
> The error is due to bad management of the container's lookup realm and only 
> manifests itself for the first mojo execution of a build.
> Other potentially affected plugins are those using {{plexus-sec-dispatcher}}, 
> {{plexus-cipher}} or any other components that aren't filtered out of the 
> plugin realm and where the component is looked up via 
> {{PlexusContainer.lookup(String)}}, i.e. without actual type as role.

-- 
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

        

Reply via email to