vmassol 02/02/10 03:37:01
Modified: conf/sample/conf/test/servlet22 web.xml
conf/sample/conf/test/servlet23 web.xml
docs/framework/xdocs changes.xml
src/framework/share/org/apache/cactus/server
AbstractServletContextWrapper.java
src/sample/share/org/apache/cactus/sample/unit
TestServletTestCase2.java
Log:
Fixed getNamedDispatcher() problem (it was not returning null when the servlet name
is not found). Thanks to Kim Madsen for reporting this !
Revision Changes Path
1.6 +10 -0 jakarta-cactus/conf/sample/conf/test/servlet22/web.xml
Index: web.xml
===================================================================
RCS file: /home/cvs/jakarta-cactus/conf/sample/conf/test/servlet22/web.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- web.xml 13 Jan 2002 21:21:16 -0000 1.5
+++ web.xml 10 Feb 2002 11:37:01 -0000 1.6
@@ -38,6 +38,11 @@
</init-param>
</servlet>
+ <servlet>
+ <servlet-name>TestJsp</servlet-name>
+ <jsp-file>/test/test.jsp</jsp-file>
+ </servlet>
+
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
@@ -56,6 +61,11 @@
<servlet-mapping>
<servlet-name>JspRedirector</servlet-name>
<url-pattern>/JspRedirector</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>TestJsp</servlet-name>
+ <url-pattern>/TestJsp</url-pattern>
</servlet-mapping>
<!-- Authentication -->
1.6 +5 -0 jakarta-cactus/conf/sample/conf/test/servlet23/web.xml
Index: web.xml
===================================================================
RCS file: /home/cvs/jakarta-cactus/conf/sample/conf/test/servlet23/web.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- web.xml 13 Jan 2002 21:21:16 -0000 1.5
+++ web.xml 10 Feb 2002 11:37:01 -0000 1.6
@@ -55,6 +55,11 @@
</init-param>
</servlet>
+ <servlet>
+ <servlet-name>TestJsp</servlet-name>
+ <jsp-file>/test/test.jsp</jsp-file>
+ </servlet>
+
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
1.83 +5 -0 jakarta-cactus/docs/framework/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/jakarta-cactus/docs/framework/xdocs/changes.xml,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- changes.xml 9 Feb 2002 18:35:11 -0000 1.82
+++ changes.xml 10 Feb 2002 11:37:01 -0000 1.83
@@ -87,6 +87,11 @@
</devs>
<release version="1.3 in CVS">
+ <action dev="VMA" type="fix" due-to="Kim Madsen"
due-to-email="[EMAIL PROTECTED]">
+ Corrected issue with <code>getNamedDispatcher()</code> not returning
+ <code>null</code> when called with a servlet name that cannot be found,
+ as is expected by the spec. Added test cases to verify the behaviour.
+ </action>
<action dev="VMA" type="add">
<link href="howto_migration.html">Migration tutorial</link> that
explains how to move from Cactus 1.2 to Cactus 1.3
1.6 +15 -5
jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractServletContextWrapper.java
Index: AbstractServletContextWrapper.java
===================================================================
RCS file:
/home/cvs/jakarta-cactus/src/framework/share/org/apache/cactus/server/AbstractServletContextWrapper.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AbstractServletContextWrapper.java 2 Feb 2002 17:26:55 -0000 1.5
+++ AbstractServletContextWrapper.java 10 Feb 2002 11:37:01 -0000 1.6
@@ -75,7 +75,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
*
- * @version $Id: AbstractServletContextWrapper.java,v 1.5 2002/02/02 17:26:55
vmassol Exp $
+ * @version $Id: AbstractServletContextWrapper.java,v 1.6 2002/02/10 11:37:01
vmassol Exp $
*/
public abstract class AbstractServletContextWrapper implements ServletContext
{
@@ -211,13 +211,23 @@
}
/**
- * @return our request dispatcher wrapper
+ * @return our request dispatcher wrapper or null if the servlet cannot
+ * be found.
+ * @see javax.servlet.ServletContext.getNamedDispatcher(String)
*/
public RequestDispatcher getNamedDispatcher(String theName)
{
- RequestDispatcher dispatcher = new RequestDispatcherWrapper(
- this.originalContext.getNamedDispatcher(theName));
- return dispatcher;
+ RequestDispatcher wrappedDispatcher = null;
+
+ RequestDispatcher originalDispatcher =
+ this.originalContext.getNamedDispatcher(theName);
+
+ if (originalDispatcher != null) {
+ wrappedDispatcher =
+ new RequestDispatcherWrapper(originalDispatcher);
+ }
+
+ return wrappedDispatcher;
}
public String getRealPath(String thePath)
1.26 +41 -1
jakarta-cactus/src/sample/share/org/apache/cactus/sample/unit/TestServletTestCase2.java
Index: TestServletTestCase2.java
===================================================================
RCS file:
/home/cvs/jakarta-cactus/src/sample/share/org/apache/cactus/sample/unit/TestServletTestCase2.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- TestServletTestCase2.java 9 Feb 2002 14:48:50 -0000 1.25
+++ TestServletTestCase2.java 10 Feb 2002 11:37:01 -0000 1.26
@@ -86,7 +86,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Massol</a>
*
- * @version $Id: TestServletTestCase2.java,v 1.25 2002/02/09 14:48:50 vmassol Exp $
+ * @version $Id: TestServletTestCase2.java,v 1.26 2002/02/10 11:37:01 vmassol Exp $
*/
public class TestServletTestCase2 extends ServletTestCase
{
@@ -413,6 +413,46 @@
}
}
fail("No cookie named 'testcookie' found");
+ }
+
+ //-------------------------------------------------------------------------
+
+ /**
+ * Verify that getNamedDispatcher() can be used to get a dispatcher.
+ */
+ public void testGetRequestDispatcherFromNamedDispatcherOK()
+ throws ServletException, IOException
+ {
+ RequestDispatcher rd =
+ config.getServletContext().getNamedDispatcher("TestJsp");
+ rd.forward(request, response);
+ }
+
+ /**
+ * Verify that getNamedDispatcher() can be used to get a dispatcher.
+ *
+ * @param theResponse the response from the server side.
+ */
+ public void endGetRequestDispatcherFromNamedDispatcherOK(WebResponse
theResponse)
+ throws IOException
+ {
+ String result = theResponse.getText();
+ assertTrue("Page not found, got [" + result + "]",
+ result.indexOf("Hello !") > 0);
+ }
+
+ //-------------------------------------------------------------------------
+
+ /**
+ * Verify that getNamedDispatcher() returns null when passed an invalid
+ * name.
+ */
+ public void testGetRequestDispatcherFromNamedDispatcherInvalid()
+ throws ServletException, IOException
+ {
+ RequestDispatcher rd =
+ config.getServletContext().getNamedDispatcher("invalid name");
+ assertNull(rd);
}
//-------------------------------------------------------------------------
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>