Author: rkanter
Date: Wed Jan 16 17:12:23 2013
New Revision: 1434044
URL: http://svn.apache.org/viewvc?rev=1434044&view=rev
Log:
OOZIE-1171 HostnameFilter should handle hostname resolution failures and
continue processing (tucu via rkanter)
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/HostnameFilter.java
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
oozie/trunk/release-log.txt
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/HostnameFilter.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/servlet/HostnameFilter.java?rev=1434044&r1=1434043&r2=1434044&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/servlet/HostnameFilter.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/servlet/HostnameFilter.java
Wed Jan 16 17:12:23 2013
@@ -18,6 +18,8 @@
package org.apache.oozie.servlet;
+import org.apache.oozie.util.XLog;
+
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
@@ -31,6 +33,8 @@ import java.net.InetAddress;
* Filter that resolves the requester hostname.
*/
public class HostnameFilter implements Filter {
+ private static final XLog LOG = XLog.getLog(HostnameFilter.class);
+
static final ThreadLocal<String> HOSTNAME_TL = new ThreadLocal<String>();
/**
@@ -62,7 +66,19 @@ public class HostnameFilter implements F
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
try {
- String hostname =
InetAddress.getByName(request.getRemoteAddr()).getCanonicalHostName();
+ String hostname;
+ try {
+ String address = request.getRemoteAddr();
+ if (address != null) {
+ hostname =
InetAddress.getByName(address).getCanonicalHostName();
+ } else {
+ LOG.warn("Request remote address is NULL");
+ hostname = "???";
+ }
+ } catch (Exception ex) {
+ LOG.warn("Request remote address could not be resolved, {0}",
ex.toString(), ex);
+ hostname = "???";
+ }
HOSTNAME_TL.set(hostname);
chain.doFilter(request, response);
}
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java?rev=1434044&r1=1434043&r2=1434044&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestHostnameFilter.java
Wed Jan 16 17:12:23 2013
@@ -59,4 +59,30 @@ public class TestHostnameFilter extends
filter.destroy();
}
+ public void testMissingHostname() throws Exception {
+ ServletRequest request = Mockito.mock(ServletRequest.class);
+ Mockito.when(request.getRemoteAddr()).thenReturn(null);
+
+ ServletResponse response = Mockito.mock(ServletResponse.class);
+
+ final AtomicBoolean invoked = new AtomicBoolean();
+
+ FilterChain chain = new FilterChain() {
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse
servletResponse)
+ throws IOException, ServletException {
+ Assert.assertTrue(HostnameFilter.get().contains("???"));
+ invoked.set(true);
+ }
+ };
+
+ Filter filter = new HostnameFilter();
+ filter.init(null);
+ Assert.assertNull(HostnameFilter.get());
+ filter.doFilter(request, response, chain);
+ Assert.assertTrue(invoked.get());
+ Assert.assertNull(HostnameFilter.get());
+ filter.destroy();
+ }
+
}
Modified: oozie/trunk/release-log.txt
URL:
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1434044&r1=1434043&r2=1434044&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Wed Jan 16 17:12:23 2013
@@ -1,5 +1,6 @@
-- Oozie 3.4.0 release (trunk - unreleased)
+OOZIE-1171 HostnameFilter should handle hostname resolution failures and
continue processing (tucu via rkanter)
OOZIE-1053 Oozie Web-console clicking on Bundle's coord jobs does not open
them up (ryota via mona)
OOZIE-1166 Print a more helpful message when ProxyUserService is configured
wrong (rkanter)
OOZIE-1136 Fix MiniOozie (rkanter)