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 14:41:13 UTC

svn commit: r619410 - /maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java

Author: vsiveton
Date: Thu Feb  7 05:41:13 2008
New Revision: 619410

URL: http://svn.apache.org/viewvc?rev=619410&view=rev
Log:
MNG-3388: DefaultPluginManager needs to catch LinkageError

o added another catch
o based on r619408

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=619410&r1=619409&r2=619410&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 Thu Feb  7 05:41:13 2008
@@ -581,8 +581,8 @@
             if ( getLogger().isFatalErrorEnabled() )
             {
                 getLogger().fatalError(
-                                        mojo.getClass().getName() + "#execute() caused a linkage error "
-                                            + "and may be out-of-date. Check the realms:" );
+                                        mojo.getClass().getName() + "#execute() caused a linkage error ("
+                                            + e.getClass().getName() + ") and may be out-of-date. Check the realms:" );
 
                 StringBuffer sb = new StringBuffer();
                 sb.append( "Plugin realm = " + pluginRealm.getId() ).append( '\n' );
@@ -1289,6 +1289,46 @@
                                                     mojoDescriptor.getPluginDescriptor(),
                                                     "Unable to retrieve component configurator for plugin configuration",
                                                     e );
+        }
+        catch ( LinkageError e )
+        {
+            if ( getLogger().isFatalErrorEnabled() )
+            {
+                getLogger().fatalError(
+                                        configurator.getClass().getName() + "#configureComponent(...) caused a linkage error ("
+                                            + e.getClass().getName() + ") 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.getURLs().length; i++ )
+                {
+                    sb.append( "urls[" + i + "] = " + pluginRealm.getURLs()[i] );
+                    if ( i != ( pluginRealm.getURLs().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.getURLs().length; i++ )
+                {
+                    sb.append( "urls[" + i + "] = " + containerRealm.getURLs()[i] );
+                    if ( i != ( containerRealm.getURLs().length - 1 ) )
+                    {
+                        sb.append( '\n' );
+                    }
+                }
+                getLogger().fatalError( sb.toString() );
+            }
+
+            throw new PluginConfigurationException(
+                                                    mojoDescriptor.getPluginDescriptor(),
+                                                    e.getClass().getName() + ": " + e.getMessage(),
+                                                    new ComponentConfigurationException( e ) );
         }
         finally
         {