Author: niallp Date: Thu Sep 15 16:13:37 2005 New Revision: 289342 URL: http://svn.apache.org/viewcvs?rev=289342&view=rev Log: Throw a NullPointerException with a useful message if the ModuleConfig cannot be found. Otherwise methods like TagUtils.pageURL() fail anyway with a NullPointerException with no clue as to why.
Modified: struts/taglib/trunk/src/java/org/apache/struts/taglib/TagUtils.java struts/taglib/trunk/src/test/org/apache/struts/taglib/TestTagUtils.java Modified: struts/taglib/trunk/src/java/org/apache/struts/taglib/TagUtils.java URL: http://svn.apache.org/viewcvs/struts/taglib/trunk/src/java/org/apache/struts/taglib/TagUtils.java?rev=289342&r1=289341&r2=289342&view=diff ============================================================================== --- struts/taglib/trunk/src/java/org/apache/struts/taglib/TagUtils.java (original) +++ struts/taglib/trunk/src/java/org/apache/struts/taglib/TagUtils.java Thu Sep 15 16:13:37 2005 @@ -422,7 +422,7 @@ } // Look up the module configuration for this request - ModuleConfig moduleConfig = instance.getModuleConfig(module, pageContext); + ModuleConfig moduleConfig = getModuleConfig(module, pageContext); // Calculate the appropriate URL StringBuffer url = new StringBuffer(); @@ -649,7 +649,7 @@ // in case of non-root context, otherwise length==1 (the slash) if (contextPath.length() > 1) value.append(contextPath); - ModuleConfig moduleConfig = ModuleUtils.getInstance().getModuleConfig(module, request, pageContext.getServletContext()); + ModuleConfig moduleConfig = getModuleConfig(module, pageContext); if ((moduleConfig != null) && (!contextRelative)) { value.append(moduleConfig.getPrefix()); @@ -776,10 +776,18 @@ * @return the ModuleConfig object */ public ModuleConfig getModuleConfig(String module, PageContext pageContext) { - return ModuleUtils.getInstance().getModuleConfig( + ModuleConfig config = ModuleUtils.getInstance().getModuleConfig( module, (HttpServletRequest) pageContext.getRequest(), pageContext.getServletContext()); + + // ModuleConfig not found + if (config == null) { + throw new NullPointerException("Module '" + module + "' not found."); + } + + return config; + } /** Modified: struts/taglib/trunk/src/test/org/apache/struts/taglib/TestTagUtils.java URL: http://svn.apache.org/viewcvs/struts/taglib/trunk/src/test/org/apache/struts/taglib/TestTagUtils.java?rev=289342&r1=289341&r2=289342&view=diff ============================================================================== --- struts/taglib/trunk/src/test/org/apache/struts/taglib/TestTagUtils.java (original) +++ struts/taglib/trunk/src/test/org/apache/struts/taglib/TestTagUtils.java Thu Sep 15 16:13:37 2005 @@ -1,5 +1,5 @@ /* - * Copyright 2004 The Apache Software Foundation. + * Copyright 2004-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1996,9 +1996,13 @@ new MockPageContext(mockServletConfig, mockHttpServletRequest, mockHttpServletResponse); - - ModuleConfig foundModuleConfig = tagutils.getModuleConfig(mockPageContext); - assertNull(foundModuleConfig); + ModuleConfig foundModuleConfig = null; + try { + foundModuleConfig = tagutils.getModuleConfig(mockPageContext); + fail("Expected ModuleConfig to not be found"); + } catch(NullPointerException ignore) { + // expected result + } mockHttpServletRequest.setAttribute(Globals.MODULE_KEY, moduleConfig); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]