Author: baerrach
Date: Thu Oct 25 05:42:39 2012
New Revision: 1401982

URL: http://svn.apache.org/viewvc?rev=1401982&view=rev
Log:
[MNG-5162] Maven stuck on downloading dependencies when using java 7.

A ConnectException references 
https://cwiki.apache.org/confluence/display/MAVEN/ConnectException

Added:
    maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/
    
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
   (with props)
Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java?rev=1401982&r1=1401981&r2=1401982&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
 Thu Oct 25 05:42:39 2012
@@ -19,6 +19,8 @@ package org.apache.maven.exception;
  * under the License.
  */
 
+import java.io.IOException;
+import java.net.ConnectException;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
@@ -175,6 +177,14 @@ public class DefaultExceptionHandler
             if ( exception instanceof MojoExecutionException )
             {
                 reference = MojoExecutionException.class.getSimpleName();
+
+                Throwable cause = exception.getCause();
+                if ( cause instanceof IOException ) {
+                    cause = cause.getCause();
+                    if ( cause instanceof ConnectException ) {
+                        reference = ConnectException.class.getSimpleName();
+                    }
+                }
             }
             else if ( exception instanceof MojoFailureException )
             {

Added: 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java?rev=1401982&view=auto
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
 (added)
+++ 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
 Thu Oct 25 05:42:39 2012
@@ -0,0 +1,59 @@
+package org.apache.maven.exception;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+import java.net.ConnectException;
+
+import org.apache.maven.plugin.MojoExecutionException;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:[email protected]";>Barrie Treloar</a>
+ */
+public class DefaultExceptionHandlerTest
+    extends TestCase
+{
+    /**
+     * Running Maven under JDK7 may cause connection issues because IPv6 is 
used by default.
+     * <p>
+     * e.g running mvn site:run will cause Jetty to fail.
+     * </p>
+     * <p>
+     * The resolution is to add -Djava.net.preferIPv4Stack=true to the command 
line as documented in
+     * http://cwiki.apache.org/confluence/display/MAVEN/ConnectException
+     * </p>
+     */
+    public void testJdk7ipv6()
+    {
+        ConnectException connEx = new ConnectException( "Connection refused: 
connect" );
+        IOException ioEx = new IOException( "Unable to establish loopback 
connection", connEx );
+        MojoExecutionException mojoEx =
+            new MojoExecutionException( "Error executing Jetty: Unable to 
establish loopback connection", ioEx );
+
+        ExceptionHandler exceptionHandler = new DefaultExceptionHandler();
+        ExceptionSummary exceptionSummary = exceptionHandler.handleException( 
mojoEx );
+
+        String expectedReference = 
"http://cwiki.apache.org/confluence/display/MAVEN/ConnectException";;
+        assertEquals( expectedReference, exceptionSummary.getReference() );
+
+    }
+}

Propchange: 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to