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]>

Reply via email to