You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2005/10/13 23:04:01 UTC

svn commit: r320918 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/usability/ maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/

Author: jdcasey
Date: Thu Oct 13 14:03:54 2005
New Revision: 320918

URL: http://svn.apache.org/viewcvs?rev=320918&view=rev
Log:
Adding conditional logic to pull out root cause to a couple diagnosers.

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/ArtifactResolverDiagnoser.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/MojoExecutionExceptionDiagnoser.java
    maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/DiagnosisUtils.java
    maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/ErrorDiagnostics.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/ArtifactResolverDiagnoser.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/ArtifactResolverDiagnoser.java?rev=320918&r1=320917&r2=320918&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/ArtifactResolverDiagnoser.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/ArtifactResolverDiagnoser.java Thu Oct 13 14:03:54 2005
@@ -21,6 +21,8 @@
 import org.apache.maven.usability.diagnostics.DiagnosisUtils;
 import org.apache.maven.usability.diagnostics.ErrorDiagnoser;
 
+import java.io.IOException;
+
 public class ArtifactResolverDiagnoser
     implements ErrorDiagnoser
 {
@@ -42,6 +44,13 @@
         message.append( "Failed to resolve artifact." );
         message.append( "\n\n" );
         message.append( exception.getMessage() );
+        
+        IOException ioe = (IOException) DiagnosisUtils.getFromCausality( exception, IOException.class );
+        
+        if ( ioe != null && exception.getMessage().indexOf( ioe.getMessage() ) < 0 )
+        {
+            message.append( "\n\nCaused by I/O exception: " ).append( ioe.getMessage() );
+        }
 
         if ( !wagonManager.isOnline() )
         {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/MojoExecutionExceptionDiagnoser.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/MojoExecutionExceptionDiagnoser.java?rev=320918&r1=320917&r2=320918&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/MojoExecutionExceptionDiagnoser.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/usability/MojoExecutionExceptionDiagnoser.java Thu Oct 13 14:03:54 2005
@@ -55,6 +55,22 @@
         {
             message.append( "\n\n" ).append( longMessage );
         }
+        
+        Throwable directCause = mee.getCause();
+        
+        if ( directCause != null )
+        {
+            message.append( "\n" );
+            
+            String directCauseMessage = directCause.getMessage();
+            
+            if ( directCauseMessage != null && mee.getMessage().indexOf( directCauseMessage ) < 0 )
+            {
+                message.append( "\nEmbedded error: " ).append( directCauseMessage );
+            }
+            
+            DiagnosisUtils.appendRootCauseIfPresentAndUnique( directCause, message, false );
+        }
 
         return message.toString();
     }

Modified: maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/DiagnosisUtils.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/DiagnosisUtils.java?rev=320918&r1=320917&r2=320918&view=diff
==============================================================================
--- maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/DiagnosisUtils.java (original)
+++ maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/DiagnosisUtils.java Thu Oct 13 14:03:54 2005
@@ -77,4 +77,24 @@
         
         return null;
     }
+
+    public static void appendRootCauseIfPresentAndUnique( Throwable error, StringBuffer message, boolean includeTypeInfo )
+    {
+        Throwable root = DiagnosisUtils.getRootCause( error );
+        
+        if ( root != null && root != error )
+        {
+            String rootMsg = root.getMessage();
+            
+            if ( rootMsg != null && error.getMessage().indexOf(rootMsg) < 0 )
+            {
+                message.append( "\nRoot message: " ).append( rootMsg );
+                
+                if ( includeTypeInfo )
+                {
+                    message.append( "\nRoot error type: " ).append( root.getClass().getName() );
+                }
+            }
+        }
+    }
 }

Modified: maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/ErrorDiagnostics.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/ErrorDiagnostics.java?rev=320918&r1=320917&r2=320918&view=diff
==============================================================================
--- maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/ErrorDiagnostics.java (original)
+++ maven/components/trunk/maven-error-diagnostics/src/main/java/org/apache/maven/usability/diagnostics/ErrorDiagnostics.java Thu Oct 13 14:03:54 2005
@@ -128,6 +128,10 @@
             StringBuffer message = new StringBuffer();
 
             message.append( error.getMessage() );
+            
+            message.append( "\nError type: " ).append( error.getClass().getName() );
+            
+            DiagnosisUtils.appendRootCauseIfPresentAndUnique( error, message, true );
 
             return message.toString();
         }