crafterm 2002/09/28 09:24:16
Modified: src/java/org/apache/cocoon/generation StreamGenerator.java
Log:
Updated class javadoc, and added an explicit check for 'form-name' when
using a form as the data source (prevents an NPE from being generated
within the servlet engine).
Revision Changes Path
1.11 +14 -7
xml-cocoon2/src/java/org/apache/cocoon/generation/StreamGenerator.java
Index: StreamGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/StreamGenerator.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- StreamGenerator.java 19 May 2002 23:13:40 -0000 1.10
+++ StreamGenerator.java 28 Sep 2002 16:24:16 -0000 1.11
@@ -69,10 +69,11 @@
* The <code>StreamGenerator</code> is a class that reads XML from a
* request InputStream and generates SAX Events.
*
- * For the POST requests with mimetype of
- * application/x-www-form-urlencoded the xml data is expected to be
- * associated with the name specified in the sitemap parameter. For
- * the POST requests with mimetypes: text/plain, text/xml,
+ * For the POST requests with a mimetype of application/x-www-form-urlencoded,
+ * or multipart/form-data the xml data is expected to be associated with the
+ * sitemap parameter 'form-name'.
+ *
+ * For the POST requests with mimetypes: text/plain, text/xml,
* application/xml the xml data is in the body of the POST request and
* its length is specified by the value returned by getContentLength()
* method. The StreamGenerator uses helper
@@ -116,7 +117,6 @@
public void generate() throws IOException, SAXException, ProcessingException
{
Parser parser = null;
- String parameter = parameters.getParameter(StreamGenerator.FORM_NAME, null);
int len = 0;
String contentType = null;
try {
@@ -124,8 +124,15 @@
contentType = request.getContentType();
if (contentType == null) {
throw new IOException("Required header ContentType is missing.");
- } else if (contentType.startsWith("application/x-www-form-urlencoded")
||
+ } else if (contentType.startsWith("application/x-www-form-urlencoded")
||
contentType.startsWith("multipart/form-data")) {
+ String parameter = parameters.getParameter(FORM_NAME, null);
+ if (parameter == null) {
+ throw new ProcessingException(
+ "StreamGenerator expects a sitemap parameter called '" +
+ FORM_NAME + "' for handling form data"
+ );
+ }
String sXml = request.getParameter(parameter);
inputSource = new InputSource(new StringReader(sXml));
} else if (contentType.startsWith("text/plain") ||
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]