Author: bentmann
Date: Sat Dec 4 20:49:18 2010
New Revision: 1042237
URL: http://svn.apache.org/viewvc?rev=1042237&view=rev
Log:
[MNG-4925] Mismanagement of container lookup realm can cause type
incompatibilities for plugins looking up components by string
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java?rev=1042237&r1=1042236&r2=1042237&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
Sat Dec 4 20:49:18 2010
@@ -86,8 +86,10 @@ public class DefaultBuildPluginManager
throw new PluginExecutionException( mojoExecution, project, e );
}
- ClassRealm oldLookupRealm = container.getLookupRealm();
+ ClassRealm oldLookupRealm = container.setLookupRealm( pluginRealm );
+
ClassLoader oldClassLoader =
Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader( pluginRealm );
MavenSession oldSession = legacySupport.getSession();
@@ -95,8 +97,6 @@ public class DefaultBuildPluginManager
{
mojo = mavenPluginManager.getConfiguredMojo( Mojo.class, session,
mojoExecution );
- Thread.currentThread().setContextClassLoader( pluginRealm );
-
legacySupport.setSession( session );
// NOTE: DuplicateArtifactAttachmentException is currently
unchecked, so be careful removing this try/catch!
@@ -158,12 +158,8 @@ public class DefaultBuildPluginManager
{
mavenPluginManager.releaseMojo( mojo, mojoExecution );
- if ( oldLookupRealm != null )
- {
- container.setLookupRealm( null );
- }
-
Thread.currentThread().setContextClassLoader( oldClassLoader );
+ container.setLookupRealm( oldLookupRealm );
legacySupport.setSession( oldSession );
}