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();
}