tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 47797] The body of the request is lost when you send the POST method !
Date Fri, 02 Oct 2009 05:20:15 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=47797

Eugene <johnbat26@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |

--- Comment #12 from Eugene <johnbat26@gmail.com> 2009-10-01 22:20:08 PDT ---
I embed several count of code in Http11Processor and StandardEngineValve.
In Http11Processor,process() I added next after invoke   
inputBuffer.parseRequestLine();  :
------------
 if (request.unparsedURI().equals("/lost-post/generic"))
        {                   
log.error("----------------------------------------------------------");
   StringBuffer stringBuffer = new StringBuffer();                              
                    for (int i = 0; i < inputBuffer.buf.length; i++) {
                        stringBuffer.append((char) inputBuffer.buf[i]);
                    }

                    log.error(stringBuffer);
                    log.error("LENGTH: "+ inputBuffer.buf.length);              
                   
log.error("++++++++++++++++++++++++++++++++++++++++++++++");                    
                }
------------

and in StandardEngineValve.invoke() I added next code:
-----------------------
    if (request.getWrapper().getName().equals("LostPostGenericServlet"))
        {
           
log.error("-----------------------------------------------------------------------------");
            StringBuffer stringBuffer = new StringBuffer();
            InputStream input = request.getInputStream();
            int i=request.getContentLength();
            int c;
            while (((c = input. read()) != -1) && (--i > 0)) {
                stringBuffer.append((char) c);
            }
            input.close();

            log.error(stringBuffer);
            PrintWriter out = response.getWriter();
            if (stringBuffer.length() > 0) {
                StringBuffer xmlBuffer = new StringBuffer();
                xmlBuffer.append("<?xml version='1.0' encoding='UTF-8'?>");
                xmlBuffer.append("<methodCall>");
                xmlBuffer.append("OK");
                xmlBuffer.append("</methodCall>");
                out.print(xmlBuffer);
                System.out.println("OK");
            } else {
                StringBuffer xmlBuffer2 = new StringBuffer();
                xmlBuffer2.append("<?xml version='1.0' encoding='UTF-8'?>");
                xmlBuffer2.append("<methodCall>");
                xmlBuffer2.append("FAILED");
                xmlBuffer2.append("</methodCall>");
                out.print(xmlBuffer2);                        
                System.out.println("FAILED");
            }
            out.close();
            log.error("++++++++++++++++++++++++++++++++++++++++++++++");
            return;
        }

-----------------------
So added code in Http11Processor print entire buffer, whereas code in
StandardEngineValve print content of body from CoyoteInputStream.
When I increase loading at tomcat (with help of Grinder) happen this error,
and code in Http11Processor print normal request with body, whereas code in
StandardEngineValve print empty string:
**********************
...
2009-10-01 20:11:30,588 ERROR [Http11Processor]
-----------------------------------------------------------------------------
2009-10-01 20:11:30,589 ERROR [Http11Processor] POST /lost-post/generic
HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: 172.20.0.3:8080
Content-Length: 389

<?xml version="1.0" encoding="UTF-8"?>

<methodCall>

<methodName>EISTMPull.getEntitlement</methodName>

<params>

<param><value><string>00020215B9FE</string></value></param>

<param><value><base64>

</base64></value></param>

<param><value><array><data>

<value><string>DTV</string></value>

<value><string>PPV</string></value>

</data></array></value></param>

</params>

</methodCall>e2:$Version="1""

ntent-type:application/x-www-form-urlencoded; charset=UTF-88
content-length:633

j_username=00%3A02%3A02%3A14%3A47%3A2e&j_password=702007D314410    
2009-10-01 20:11:30,589 ERROR [Http11Processor] LENGTH: 8192
2009-10-01 20:11:30,589 ERROR [Http11Processor]
++++++++++++++++++++++++++++++++++++++++++++++
2009-10-01 20:11:30,589 ERROR [StandardEngineValve]
-----------------------------------------------------------------------------
2009-10-01 20:11:30,589 ERROR [StandardEngineValve] 
2009-10-01 20:11:30,590 ERROR [StandardEngineValve]
++++++++++++++++++++++++++++++++++++++++++++++
......
*************************************                                           
                                                                               
                    Therefore error happen inside tomcat ! During parsing body
of request. Often this happen during increase loading at other applications
deployed in tomcat.

I conclude several tomcat classes, which uses in JBossWeb, because don't know,
which version of tomcat 5.5 used in JbossWeb 2.0.3.GA

Many thanks in advance for any some help.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message