You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/02/07 01:56:20 UTC
svn commit: r619234 -
/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Author: vsiveton
Date: Wed Feb 6 16:56:18 2008
New Revision: 619234
URL: http://svn.apache.org/viewvc?rev=619234&view=rev
Log:
MNG-3388: DefaultPluginManager needs to catch LinkageError
o added the catch
Modified:
maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Modified: maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=619234&r1=619233&r2=619234&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Wed Feb 6 16:56:18 2008
@@ -60,6 +60,7 @@
import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.reporting.MavenReport;
import org.apache.maven.settings.Settings;
+import org.codehaus.classworlds.ClassRealm;
import org.codehaus.classworlds.NoSuchRealmException;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
@@ -463,6 +464,45 @@
}
catch ( MojoFailureException e )
{
+ session.getEventDispatcher().dispatchError( event, goalExecId, e );
+
+ throw e;
+ }
+ catch ( LinkageError e )
+ {
+ if ( getLogger().isFatalErrorEnabled() )
+ {
+ getLogger().fatalError(
+ plugin.getClass().getName() + "#execute() caused a linkage error "
+ + "and may be out-of-date. Check the realms:" );
+
+ ClassRealm pluginRealm = mojoDescriptor.getPluginDescriptor().getClassRealm();
+ StringBuffer sb = new StringBuffer();
+ sb.append( "Plugin realm = " + pluginRealm.getId() ).append( '\n' );
+ for ( int i = 0; i < pluginRealm.getConstituents().length; i++ )
+ {
+ sb.append( "urls[" + i + "] = " + pluginRealm.getConstituents()[i] );
+ if ( i != ( pluginRealm.getConstituents().length - 1 ) )
+ {
+ sb.append( '\n' );
+ }
+ }
+ getLogger().fatalError( sb.toString() );
+
+ ClassRealm containerRealm = container.getContainerRealm();
+ sb = new StringBuffer();
+ sb.append( "Container realm = " + containerRealm.getId() ).append( '\n' );
+ for ( int i = 0; i < containerRealm.getConstituents().length; i++ )
+ {
+ sb.append( "urls[" + i + "] = " + containerRealm.getConstituents()[i] );
+ if ( i != ( containerRealm.getConstituents().length - 1 ) )
+ {
+ sb.append( '\n' );
+ }
+ }
+ getLogger().fatalError( sb.toString() );
+ }
+
session.getEventDispatcher().dispatchError( event, goalExecId, e );
throw e;