maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From baerr...@apache.org
Subject svn commit: r1401982 - in /maven/maven-3/trunk/maven-core/src: main/java/org/apache/maven/exception/DefaultExceptionHandler.java test/java/org/apache/maven/exception/ test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
Date Thu, 25 Oct 2012 05:42:40 GMT
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:baerrach@apache.org">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



Mime
View raw message