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 42347] - getParameter does not return parameter value when submitted as post method occassionally
Date Wed, 09 Jan 2008 18:22:24 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=42347>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=42347


brido02@ca.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         OS/Version|other                       |Windows XP
            Version|5.0.0                       |5.5.25




------- Additional Comments From brido02@ca.com  2008-01-09 10:22 -------
(In reply to comment #3)
> This looks similar to bug 40860. The additional logging in 5.5.21 onwards may
> shed some light on this. Can you test with 5.5.25?
> Please provide the full source for AttributeConfigServlet or better yet a
> minimal Servlet with which you can re-produce the same issue.
> Could you also update this bug with OS info and whether or nor you are using 
the
> native connector.


Ok I ran under 5.5.25 was able to reproduce with a TestServlet as requested.
Also, as with bug 40860 request.getQueryString does show the id=66644 at 
failure

web.xml registrations

  <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>
      com.aprisma.spectrum.app.web.servlet.TestServlet
    </servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/common/attrConfig/mytestpath</url-pattern>
  </servlet-mapping>

// TestServlet

package com.aprisma.spectrum.app.web.servlet;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class TestServlet extends HttpServlet
{
    public void init( )
    {
    }

    public void doPost( HttpServletRequest request,
                       HttpServletResponse response )
                throws ServletException, IOException
    {
        doGet( request, response ) ;
    }

    public void doGet( HttpServletRequest request,
                       HttpServletResponse response )
        throws ServletException, IOException
    {

        try
        {
            Object result = null ;
            String servletPath = request.getServletPath () ;

            if ( servletPath.endsWith ( "mytestpath" ) )
            {
                String paramValue = request.getParameter ( "id" ) ;
System.out.println( (new Date()).toString() + ": " +
Thread.currentThread().getName() + ": paramValue = " + paramValue );

                // as if the if/else did some work...
                Thread.currentThread().sleep( 100 );

                if ( paramValue != null && paramValue.length () > 0 )
                {
                    result = new ArrayList();
                }
                else
                {
                    result = new HashMap();

                    System.out.println( "QueryString: " +
                                           request.getQueryString() );
                    new Exception().printStackTrace();
                }
            }
            else
            {
                response.setStatus (
                          HttpServletResponse.SC_BAD_REQUEST ) ;
            }

            response.setContentType ( "application/octet-stream" ) ;

            ObjectOutputStream oos =
               new ObjectOutputStream( response.getOutputStream () ) ;

            oos.writeObject ( result );
            oos.flush();
            oos.close();
        }
        catch ( Throwable e )
        {
            e.printStackTrace();
        }
    }
}

Wed Jan 09 12:07:24 EST 2008: http-80-Processor21: paramValue = null
QueryString: id=66644
java.lang.Exception
        at com.aprisma.spectrum.app.web.servlet.TestServlet.doGet
(TestServlet.java:75)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:174)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:525)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:117)
        at org.apache.catalina.valves.FastCommonAccessLogValve.invoke
(FastCommonAccessLogValve.java:482)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:151)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:874)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)


localhost_access_log.2008-01-09.txt:

138.42.248.45 - brido02 [09/Jan/2008:12:07:23 -0500]
"GET /spectrum/common/attrConfig/mytestpath?id=66644 HTTP/1.1" 200 82


Not sure about native connector.. this is how we define it in server.xml
Im running both client and tomcat on windows xp sp2

  <Service name="Tomcat-Standalone">

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="80" maxHttpHeaderSize="8192" maxThreads="150"
       minSpareThreads="25" maxSpareThreads="75" enableLookups="false" 
       redirectPort="443" acceptCount="100"
       connectionTimeout="20000" disableUploadTimeout="true" />

I see this about 1 every 10 tries when I run the following standalone program
to tax my CPU to 100%. machines in our lab see this about every other day 
without running any such program.

public class Slowit
{
    public static void loopIt()
    {
        while ( true ) {}
    }

    public static void main ( String args [] )
    {

        new Thread( new Runnable()
        {
            public void run() { loopIt (); }
        } ).start();

        new Thread( new Runnable()
        {
            public void run() { loopIt (); }
        } ).start();

        new Thread( new Runnable()
        {
            public void run() { loopIt (); }
        } ).start();
    }
}


Is there any debug you could suggest I turn on to help you???




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

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


Mime
View raw message