joerg       2003/07/12 06:30:02

  Modified:    src/blocks/jsp/java/org/apache/cocoon/generation
                        JspGenerator.java
               .        status.xml
               src/blocks/jsp/java/org/apache/cocoon/components/jsp
                        JSPEngineImplNamedDispatcherInclude.java
                        JSPEngineImpl.java
  Log:
  bugfix 4934 applied: made JSPs working in Resin that don't end on .jsp (thanks to 
Ryder Rishel)
  avoid NPE in JSPEngineImplNamedDispatcherInclude when no RequestDispatcher is found
  
  Revision  Changes    Path
  1.4       +1 -3      
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java
  
  Index: JspGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JspGenerator.java 10 Jul 2003 23:38:04 -0000      1.3
  +++ JspGenerator.java 12 Jul 2003 13:30:02 -0000      1.4
  @@ -131,8 +131,6 @@
               throw new ProcessingException("SAXException 
JspGenerator.generate()",e.getException());
           } catch (IOException e) {
               throw new ProcessingException("IOException JspGenerator.generate()",e);
  -        } catch (ProcessingException e) {
  -            throw e;
           } catch (Exception e) {
               throw new ProcessingException("Exception JspGenerator.generate()",e);
           } finally {
  
  
  
  1.89      +4 -1      cocoon-2.1/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/status.xml,v
  retrieving revision 1.88
  retrieving revision 1.89
  diff -u -r1.88 -r1.89
  --- status.xml        11 Jul 2003 18:32:25 -0000      1.88
  +++ status.xml        12 Jul 2003 13:30:02 -0000      1.89
  @@ -184,6 +184,9 @@
     <changes>
   
    <release version="@version@" date="@date@">
  +  <action dev="JH" type="fix" fixes-bug="4934" due-to="Ryder Rishel" due-to-email=" 
 [EMAIL PROTECTED]">
  +   Made JSPs working in Resin that don't end on *.jsp.
  +  </action>
     <action dev="JH" type="update">
      All Reader accessing Avalon components now extend the ServiceableReader
      instead of deprecated ComposerReader. It pertains the JSPReader, the
  
  
  
  1.4       +12 -7     
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java
  
  Index: JSPEngineImplNamedDispatcherInclude.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JSPEngineImplNamedDispatcherInclude.java  10 Jul 2003 23:38:04 -0000      1.3
  +++ JSPEngineImplNamedDispatcherInclude.java  12 Jul 2003 13:30:02 -0000      1.4
  @@ -79,8 +79,10 @@
   public class JSPEngineImplNamedDispatcherInclude extends AbstractLogEnabled
       implements JSPEngine, Parameterizable, ThreadSafe {
   
  -    /** The Servlet Include Path */
  +    /** The servlet include path. */
       public static final String INC_SERVLET_PATH = 
"javax.servlet.include.servlet_path";
  +    /** The servlet request uri, needed for Resin. */
  +    public static final String INC_REQUEST_URI = 
"javax.servlet.include.request_uri";
   
       /** config-parameter name for specifying the jsp servlet-name.
         ie. servlet-name
  @@ -123,11 +125,13 @@
           // start JSPServlet.
           javax.servlet.RequestDispatcher rd = context.getNamedDispatcher( 
servletName );
           if (rd != null) {
  -          rd.include( request, response );
  -          response.flushBuffer();
  -          bytes = response.toByteArray();
  +            rd.include( request, response );
  +            response.flushBuffer();
  +            bytes = response.toByteArray();
           } else {
  -          getLogger().error( "Specify a correct " + CONFIG_SERVLET_NAME + " " + 
servletName );
  +            // FIXME: I guess it's better to throw a more specific exception.
  +            throw new Exception("No RequestDispatcher found. Specify a correct '"
  +                                + CONFIG_SERVLET_NAME + "': " + servletName);
           }
           return bytes;
       }
  @@ -170,8 +174,9 @@
           /** @deprecated use isRequestedSessionIdFromURL instead. */
           public boolean isRequestedSessionIdFromUrl(){ return 
request.isRequestedSessionIdFromUrl(); }
           public Object getAttribute(String s){
  -            if(s != null && s.equals(INC_SERVLET_PATH))
  +            if (s != null && (s.equals(INC_SERVLET_PATH) || 
s.equals(INC_REQUEST_URI))) {
                   return jspFile;
  +            }
               return request.getAttribute(s);
           }
           public Enumeration getAttributeNames(){ return request.getAttributeNames(); 
}
  
  
  
  1.7       +6 -3      
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java
  
  Index: JSPEngineImpl.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JSPEngineImpl.java        10 Jul 2003 23:38:04 -0000      1.6
  +++ JSPEngineImpl.java        12 Jul 2003 13:30:02 -0000      1.7
  @@ -80,8 +80,10 @@
   public class JSPEngineImpl extends AbstractLogEnabled
       implements JSPEngine, Parameterizable, ThreadSafe {
   
  -    /** The Servlet Include Path */
  +    /** The servlet include path. */
       public static final String INC_SERVLET_PATH = 
"javax.servlet.include.servlet_path";
  +    /** The servlet request uri, needed for Resin. */
  +    public static final String INC_REQUEST_URI = 
"javax.servlet.include.request_uri";
   
       /** The Default Servlet Class Name for Tomcat 3.X and 4.X*/
       public static final String DEFAULT_SERVLET_CLASS = 
"org.apache.jasper.servlet.JspServlet";
  @@ -179,8 +181,9 @@
           /** @deprecated use isRequestedSessionIdFromURL instead. */
           public boolean isRequestedSessionIdFromUrl(){ return 
request.isRequestedSessionIdFromUrl(); }
           public Object getAttribute(String s){
  -            if(s != null && s.equals(INC_SERVLET_PATH))
  +            if (s != null && (s.equals(INC_SERVLET_PATH) || 
s.equals(INC_REQUEST_URI))) {
                   return jspFile;
  +            }
               return request.getAttribute(s);
           }
           public Enumeration getAttributeNames(){ return request.getAttributeNames(); 
}
  
  
  

Reply via email to