M src/com/sun/faces/context/ExternalContextImpl.java
Fix for issue 146
ServletRequest.getRequestDispatcher() returns null,
but the code doesn't check for null. The proper fix would be checking
for null and calling response.sendError(HttpServletResponse.SC_NOT_FOUND).
(Already reviewed by Adam)
M src/com/sun/faces/renderkit/ResponseStateManagerImpl.java
Fix for issue 151
Throw FacesException that wraps the original exception when
restore tree structure/tree state fails.
M src/com/sun/faces/renderkit/html_basic/CommandLinkRenderer.java
Fix for Issue 144. Add a "//" before the beginning of the CDATA
block to make it readable in Mozilla.
(Already reviewed by Jacob)
Diffs are also posted to the issues.
Index: src/com/sun/faces/context/ExternalContextImpl.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/context/ExternalContextImpl.java,v
retrieving revision 1.32
diff -u -r1.32 ExternalContextImpl.java
--- src/com/sun/faces/context/ExternalContextImpl.java 1 Jun 2005 14:03:31 -0000 1.32
+++ src/com/sun/faces/context/ExternalContextImpl.java 16 Jul 2005 00:52:02 -0000
@@ -344,6 +344,11 @@
public void dispatch(String requestURI) throws IOException, FacesException {
RequestDispatcher requestDispatcher = request.getRequestDispatcher(
requestURI);
+ if (requestDispatcher == null) {
+ ((HttpServletResponse) response).
+ sendError(HttpServletResponse.SC_NOT_FOUND);
+ return;
+ }
try {
requestDispatcher.forward(this.request, this.response);
} catch (IOException ioe) {
Index: src/com/sun/faces/renderkit/ResponseStateManagerImpl.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/renderkit/ResponseStateManagerImpl.java,v
retrieving revision 1.22
diff -u -r1.22 ResponseStateManagerImpl.java
--- src/com/sun/faces/renderkit/ResponseStateManagerImpl.java 23 Jun 2005 15:31:33 -0000 1.22
+++ src/com/sun/faces/renderkit/ResponseStateManagerImpl.java 16 Jul 2005 00:52:02 -0000
@@ -25,6 +25,7 @@
import javax.faces.context.ResponseWriter;
import javax.faces.render.RenderKitFactory;
import javax.faces.render.ResponseStateManager;
+import javax.faces.FacesException;
import com.sun.faces.util.Base64;
import com.sun.faces.util.Util;
@@ -153,10 +154,13 @@
ois.close();
} catch (java.io.OptionalDataException ode) {
logger.log(Level.SEVERE, ode.getMessage(), ode);
+ throw new FacesException(ode);
} catch (java.lang.ClassNotFoundException cnfe) {
logger.log(Level.SEVERE,cnfe.getMessage(), cnfe);
+ throw new FacesException(cnfe);
} catch (java.io.IOException iox) {
logger.log(Level.SEVERE,iox.getMessage(), iox);
+ throw new FacesException(iox);
}
}
else {
Index: src/com/sun/faces/renderkit/html_basic/CommandLinkRenderer.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/renderkit/html_basic/CommandLinkRenderer.java,v
retrieving revision 1.32
diff -u -r1.32 CommandLinkRenderer.java
--- src/com/sun/faces/renderkit/html_basic/CommandLinkRenderer.java 9 Jun 2005 22:37:47 -0000 1.32
+++ src/com/sun/faces/renderkit/html_basic/CommandLinkRenderer.java 16 Jul 2005 00:52:02 -0000
@@ -385,11 +385,12 @@
String formName = myForm.getClientId(context);
writer.startElement("script", component);
writer.writeAttribute("type", "text/javascript", "type");
- writer.writeAttribute("language", "Javascript", "language");
- writer.write("<!--\n");
+ writer.writeAttribute("language", "Javascript", "language");
if (isXHTML) {
- writer.write("<![CDATA[\n");
- }
+ writer.write("//<![CDATA[\n");
+ } else {
+ writer.write("<!--\n");
+ }
writer.write("\nfunction ");
String functionName = (CLEAR_HIDDEN_FIELD_FN_NAME + "_" + formName.replace(NamingContainer.SEPARATOR_CHAR, '_'));
writer.write(functionName);
@@ -414,9 +415,10 @@
writer.write("\n}\n");
if (isXHTML) {
- writer.write("]]>\n");
- }
- writer.write("//-->\n");
+ writer.write("//]]>\n");
+ } else {
+ writer.write("//-->\n");
+ }
writer.endElement("script");
// say that we've already rendered the script for this form