Author: todd Date: Tue Jul 5 22:09:54 2011 New Revision: 1143212 URL: http://svn.apache.org/viewvc?rev=1143212&view=rev Log: HADOOP-7440. HttpServer.getParameterValues throws NPE for missing parameters. Contributed by Uma Maheswara Rao G and Todd Lipcon. Modified: hadoop/common/trunk/common/CHANGES.txt hadoop/common/trunk/common/src/java/org/apache/hadoop/http/HttpServer.java hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHtmlQuoting.java hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHttpServer.java Modified: hadoop/common/trunk/common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/common/CHANGES.txt?rev=1143212&r1=1143211&r2=1143212&view=diff ============================================================================== --- hadoop/common/trunk/common/CHANGES.txt (original) +++ hadoop/common/trunk/common/CHANGES.txt Tue Jul 5 22:09:54 2011 @@ -346,6 +346,9 @@ Trunk (unreleased changes) HADOOP-7090. Fix resource leaks in s3.INode, BloomMapFile, WritableUtils and CBZip2OutputStream. (Uma Maheswara Rao G via szetszwo) + HADOOP-7440. HttpServer.getParameterValues throws NPE for missing + parameters. (Uma Maheswara Rao G and todd via todd) + Release 0.22.0 - Unreleased INCOMPATIBLE CHANGES Modified: hadoop/common/trunk/common/src/java/org/apache/hadoop/http/HttpServer.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/common/src/java/org/apache/hadoop/http/HttpServer.java?rev=1143212&r1=1143211&r2=1143212&view=diff ============================================================================== --- hadoop/common/trunk/common/src/java/org/apache/hadoop/http/HttpServer.java (original) +++ hadoop/common/trunk/common/src/java/org/apache/hadoop/http/HttpServer.java Tue Jul 5 22:09:54 2011 @@ -800,6 +800,9 @@ public class HttpServer implements Filte public String[] getParameterValues(String name) { String unquoteName = HtmlQuoting.unquoteHtmlChars(name); String[] unquoteValue = rawRequest.getParameterValues(unquoteName); + if (unquoteValue == null) { + return null; + } String[] result = new String[unquoteValue.length]; for(int i=0; i < result.length; ++i) { result[i] = HtmlQuoting.quoteHtmlChars(unquoteValue[i]); Modified: hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHtmlQuoting.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHtmlQuoting.java?rev=1143212&r1=1143211&r2=1143212&view=diff ============================================================================== --- hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHtmlQuoting.java (original) +++ hadoop/common/trunk/common/src/test/core/org/apache/hadoop/http/TestHtmlQuoting.java Tue Jul 5 22:09:54 2011 @@ -17,11 +17,12 @@ */ package org.apache.hadoop.http; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; + +import javax.servlet.http.HttpServletRequest; import org.junit.Test; +import org.mockito.Mockito; public class TestHtmlQuoting { @@ -62,4 +63,28 @@ public class TestHtmlQuoting { } runRoundTrip(buffer.toString()); } + + + @Test + public void testRequestQuoting() throws Exception { + HttpServletRequest mockReq = Mockito.mock(HttpServletRequest.class); + HttpServer.QuotingInputFilter.RequestQuoter quoter = + new HttpServer.QuotingInputFilter.RequestQuoter(mockReq); + + Mockito.doReturn("a