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]

Reply via email to