You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/08/07 14:16:45 UTC
svn commit: r801964 -
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Author: bentmann
Date: Fri Aug 7 12:16:45 2009
New Revision: 801964
URL: http://svn.apache.org/viewvc?rev=801964&view=rev
Log:
[MNG-2690] DefaultPluginManager.getConfiguredMojo() doesn't handle NoClassDefFoundError correctly
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=801964&r1=801963&r2=801964&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Fri Aug 7 12:16:45 2009
@@ -525,8 +525,23 @@
}
catch ( ComponentLookupException e )
{
+ Throwable cause = e.getCause();
+ while ( cause != null && !( cause instanceof LinkageError )
+ && !( cause instanceof ClassNotFoundException ) )
+ {
+ cause = cause.getCause();
+ }
+
+ if ( ( cause instanceof NoClassDefFoundError ) || ( cause instanceof ClassNotFoundException ) )
+ {
+ throw new PluginContainerException( mojoDescriptor, pluginRealm, "Unable to load the mojo '"
+ + mojoDescriptor.getGoal() + "' in the plugin '" + pluginDescriptor.getId()
+ + "'. A required class is missing: " + cause.getMessage(), e );
+ }
+
throw new PluginContainerException( mojoDescriptor, pluginRealm, "Unable to find the mojo '"
- + mojoDescriptor.getGoal() + "' in the plugin '" + pluginDescriptor.getId() + "'", e );
+ + mojoDescriptor.getGoal() + "' (or one of its required components) in the plugin '"
+ + pluginDescriptor.getId() + "'", e );
}
if ( mojo instanceof ContextEnabled )