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]

Reply via email to