Author: tschneider Date: Sat Feb 17 22:33:26 2007 New Revision: 508880 URL: http://svn.apache.org/viewvc?view=rev&rev=508880 Log: WW-1709 fixed nullpointer when scheme is null
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java?view=diff&rev=508880&r1=508879&r2=508880 ============================================================================== --- struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java (original) +++ struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java Sat Feb 17 22:33:26 2007 @@ -74,6 +74,26 @@ assertEquals(expectedUrl, result); } + public void testForceAddNullSchemeHostAndPort() throws Exception { + String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action"; + + Mock mockHttpServletRequest = new Mock(HttpServletRequest.class); + mockHttpServletRequest.expectAndReturn("getScheme", "http"); + mockHttpServletRequest.expectAndReturn("getServerName", "localhost"); + mockHttpServletRequest.expectAndReturn("getContextPath", + "/contextPath"); + + Mock mockHttpServletResponse = new Mock(HttpServletResponse.class); + mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, + expectedUrl); + + String result = UrlHelper.buildUrl("/path1/path2/myAction.action", + (HttpServletRequest) mockHttpServletRequest.proxy(), + (HttpServletResponse) mockHttpServletResponse.proxy(), null, + null, true, true, true); + assertEquals(expectedUrl, result); + mockHttpServletRequest.verify(); + } public void testBuildParametersStringWithUrlHavingSomeExistingParameters() throws Exception { String expectedUrl = "http://localhost:8080/myContext/myPage.jsp?initParam=initValue&param1=value1&param2=value2"; Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java?view=diff&rev=508880&r1=508879&r2=508880 ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java Sat Feb 17 22:33:26 2007 @@ -103,10 +103,12 @@ link.append("://"); link.append(request.getServerName()); - if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) - { - link.append(":"); - link.append(scheme.equals("http") ? httpPort : httpsPort); + if (scheme != null) { + if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) + { + link.append(":"); + link.append(scheme.equals("http") ? httpPort : httpsPort); + } } } else if (