[MJAVADOC-532] <link> entries that do not redirect are ignored
HttpClientContext#getRedirectLocations() can return null when there are
no redirects.
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
index a740c6e..5881549 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -1654,7 +1654,7 @@
}
List<URI> redirects = httpContext.getRedirectLocations();
- return redirects.isEmpty() ? url : redirects.get( redirects.size() - 1 ).toURL();
+ return isEmpty( redirects ) ? url : redirects.get( redirects.size() - 1 ).toURL();
}
finally
{
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
index ed6ee00..8e9b33f 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -577,6 +577,47 @@
}
/**
+ * Tests that getRedirectUrl returns the same URL when there are no redirects.
+ */
+ public void testGetRedirectUrlWithNoRedirects()
+ throws Exception
+ {
+ Server server = null;
+ try
+ {
+ server = new Server( 0 );
+ server.addHandler( new AbstractHandler()
+ {
+ @Override
+ public void handle( String target, HttpServletRequest request, HttpServletResponse response,
+ int dispatch )
+ throws IOException, ServletException
+ {
+ response.setStatus( HttpServletResponse.SC_OK );
+ ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer( 100 );
+ writer.write( "<html>Hello world</html>" );
+ writer.flush();
+ response.setContentLength( writer.size() );
+ OutputStream out = response.getOutputStream();
+ writer.writeTo( out );
+ out.close();
+ writer.close();
+ }
+ } );
+ server.start();
+
+ URL url = new URI( "http://localhost:" + server.getConnectors()[0].getLocalPort() ).toURL();
+ URL redirectUrl = JavadocUtil.getRedirectUrl( url, new Settings() );
+
+ assertEquals( url.toURI(), redirectUrl.toURI() );
+ }
+ finally
+ {
+ stopSilently( server );
+ }
+ }
+
+ /**
* Method to test copyJavadocResources()
*
* @throws Exception if any