You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Anantaneni Harish <an...@vertexsoft.com> on 2011/11/01 02:42:53 UTC

RE: cannot read complete HTTP request body. It reads only 8192 characters

Any thoughts about this?

Thanks and Regards,
Harish
-----Original Message-----
From: Anantaneni Harish 
Sent: Monday, October 31, 2011 11:23 AM
To: Tomcat Users List
Subject: RE: cannot read complete HTTP request body. It reads only 8192 characters

String keyValuePair = null;
String[] arrKeyValue = null;
BufferedReader in = request.getReader();
while ((keyValuePair = in.readLine()) != null) {
arrKeyValue = keyValuePair.split("=");

Above code reads incomplete data(read only 8192 bytes) at my customer's environment, but reads complete data in my environment.

String keyValuePair = null;
String[] arrKeyValue = null;
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
while ((keyValuePair = in.readLine()) != null) {
arrKeyValue = keyValuePair.split("=");

Above code reads complete data in both the environments. *no changes done to customer's environment.

I hope you can help me now by finding the reason for data lost at my customer's environment when using request.getReader().

Thanks and Regards,
Harish

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 
Sent: Friday, October 28, 2011 9:08 PM
To: Tomcat Users List
Subject: Re: cannot read complete HTTP request body. It reads only 8192 characters

Konstantin Kolinko wrote:
> 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
>> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
>>> Thanks for the directions the Rainer. Actually the issue is just
>>> solved.
>>>
>>> We have changed from BufferedReader in = request.getReader();
>>>
>>> to
>>>
>>> BufferedReader in = new BufferedReader(new
>>> InputStreamReader(request.getInputStream()));
>>>
>>> Now whole body has been read at my client's environment as well.
>>>
>>> But would like to know, what causes the issue. Do you have any
>>> idea, why same method can read whole data in my environment and
>>> does not read whole data at my customer's environment?
>> You'll have to provide more information, such as the code you are
>> using.
>>
>> I'm fairly sure Tomcat is not the source of the problem.
>>
> 
> +1.
> 
> I think you need to pay more attention on the documentation of the
> java.io.Reader#read() method, or maybe look for a tutorial.
> 
> See also documentation for java.io.InputStream#available().
> 
> In short:  the read() method returns a portion of data that is
> currently available. If you need more data you must call read()
> repeatedly in a loop until it returns -1.
> 

.. and the difference between two systems, may be that on one system, the network is 
faster (or the system slower, or the buffer bigger) and so by the time you do the read, 
there are more bytes available in the buffer.

> If you had provided some of your source code that performs reading, we
> would be able to point at the exact error in your code.
> 

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




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


RE: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Tim Watts <ti...@cliftonfarm.org>.
The answer likely lies somewhere in the version and/or configuration of
AJP.  You never shared the details of these and so no further useful
comment is possible.  See Rainer Jung's response on 10/27.


On Mon, 2011-10-31 at 18:42 -0700, Anantaneni Harish wrote:
> Any thoughts about this?
> 
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Anantaneni Harish 
> Sent: Monday, October 31, 2011 11:23 AM
> To: Tomcat Users List
> Subject: RE: cannot read complete HTTP request body. It reads only 8192 characters
> 
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = request.getReader();
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
> 
> Above code reads incomplete data(read only 8192 bytes) at my customer's environment, but reads complete data in my environment.
> 
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
> 
> Above code reads complete data in both the environments. *no changes done to customer's environment.
> 
> I hope you can help me now by finding the reason for data lost at my customer's environment when using request.getReader().
> 
> Thanks and Regards,
> Harish
> 
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com] 
> Sent: Friday, October 28, 2011 9:08 PM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192 characters
> 
> Konstantin Kolinko wrote:
> > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> >>> Thanks for the directions the Rainer. Actually the issue is just
> >>> solved.
> >>>
> >>> We have changed from BufferedReader in = request.getReader();
> >>>
> >>> to
> >>>
> >>> BufferedReader in = new BufferedReader(new
> >>> InputStreamReader(request.getInputStream()));
> >>>
> >>> Now whole body has been read at my client's environment as well.
> >>>
> >>> But would like to know, what causes the issue. Do you have any
> >>> idea, why same method can read whole data in my environment and
> >>> does not read whole data at my customer's environment?
> >> You'll have to provide more information, such as the code you are
> >> using.
> >>
> >> I'm fairly sure Tomcat is not the source of the problem.
> >>
> > 
> > +1.
> > 
> > I think you need to pay more attention on the documentation of the
> > java.io.Reader#read() method, or maybe look for a tutorial.
> > 
> > See also documentation for java.io.InputStream#available().
> > 
> > In short:  the read() method returns a portion of data that is
> > currently available. If you need more data you must call read()
> > repeatedly in a loop until it returns -1.
> > 
> 
> .. and the difference between two systems, may be that on one system, the network is 
> faster (or the system slower, or the buffer bigger) and so by the time you do the read, 
> there are more bytes available in the buffer.
> 
> > If you had provided some of your source code that performs reading, we
> > would be able to point at the exact error in your code.
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 



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


Re: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Pid * <pi...@pidster.com>.
On 1 Nov 2011, at 01:43, Anantaneni Harish
<an...@vertexsoft.com> wrote:

>
> Any thoughts about this?

Only one. Why doesn't request.getParameterXxxx work for you?


p


>
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Anantaneni Harish
> Sent: Monday, October 31, 2011 11:23 AM
> To: Tomcat Users List
> Subject: RE: cannot read complete HTTP request body. It reads only 8192 characters
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = request.getReader();
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads incomplete data(read only 8192 bytes) at my customer's environment, but reads complete data in my environment.
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads complete data in both the environments. *no changes done to customer's environment.
>
> I hope you can help me now by finding the reason for data lost at my customer's environment when using request.getReader().
>
> Thanks and Regards,
> Harish
>
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com]
> Sent: Friday, October 28, 2011 9:08 PM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192 characters
>
> Konstantin Kolinko wrote:
>> 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
>>> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
>>>> Thanks for the directions the Rainer. Actually the issue is just
>>>> solved.
>>>>
>>>> We have changed from BufferedReader in = request.getReader();
>>>>
>>>> to
>>>>
>>>> BufferedReader in = new BufferedReader(new
>>>> InputStreamReader(request.getInputStream()));
>>>>
>>>> Now whole body has been read at my client's environment as well.
>>>>
>>>> But would like to know, what causes the issue. Do you have any
>>>> idea, why same method can read whole data in my environment and
>>>> does not read whole data at my customer's environment?
>>> You'll have to provide more information, such as the code you are
>>> using.
>>>
>>> I'm fairly sure Tomcat is not the source of the problem.
>>>
>>
>> +1.
>>
>> I think you need to pay more attention on the documentation of the
>> java.io.Reader#read() method, or maybe look for a tutorial.
>>
>> See also documentation for java.io.InputStream#available().
>>
>> In short:  the read() method returns a portion of data that is
>> currently available. If you need more data you must call read()
>> repeatedly in a loop until it returns -1.
>>
>
> .. and the difference between two systems, may be that on one system, the network is
> faster (or the system slower, or the buffer bigger) and so by the time you do the read,
> there are more bytes available in the buffer.
>
>> If you had provided some of your source code that performs reading, we
>> would be able to point at the exact error in your code.
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>

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


Re: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Igor Cicimov <ic...@gmail.com>.
Have you done the test in your environment simulating the customer one as
close as possible? Maybe taking in count their network topology (routers,
switches, firewalls), hundreds (possible thousands) of requests per second,
network latency, tcp timeout kernel settings, buffer queue etc etc, the
code will fail on your server too.

For start lets say you might check their /etc/sysctl.conf file and see if
their any tcp time settings differences from your server.


On Tue, Nov 1, 2011 at 12:58 PM, Anantaneni Harish <
anantaneni.harish@vertexsoft.com> wrote:

> Dont know :(, must be different.
>
> Thanks and Regards,
> Harish
>
> -----Original Message-----
> From: Igor Cicimov [mailto:icicimov@gmail.com]
> Sent: Tuesday, November 01, 2011 10:57 AM
> To: Tomcat Users List
> Subject: RE: cannot read complete HTTP request body. It reads only 8192
> characters
>
> And same kernel network settings?
>  On Nov 1, 2011 12:50 PM, "Anantaneni Harish" <
> anantaneni.harish@vertexsoft.com> wrote:
>
> > Both environments have the following softwares.
> >
> > OS      Name    Red Hat Enterprise Linux
> >        Version release 5.3 (Tikanga)
> > Java    Name    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
> >        Version 1.6.0_13
> > Tomcat  Name    apache-tomcat
> >        Version 5.5.28
> >
> > Thanks and Regards,
> > Harish
> > -----Original Message-----
> > From: Igor Cicimov [mailto:icicimov@gmail.com]
> > Sent: Tuesday, November 01, 2011 10:47 AM
> > To: Tomcat Users List
> > Subject: Re: cannot read complete HTTP request body. It reads only 8192
> > characters
> >
> > You never said what is the difference between your environment and the
> > customer one or I missed that info. Same OS? Same Java version?
> >
> > On Tue, Nov 1, 2011 at 12:42 PM, Anantaneni Harish <
> > anantaneni.harish@vertexsoft.com> wrote:
> >
> > >
> > > Any thoughts about this?
> > >
> > > Thanks and Regards,
> > > Harish
> > > -----Original Message-----
> > > From: Anantaneni Harish
> > > Sent: Monday, October 31, 2011 11:23 AM
> > > To: Tomcat Users List
> > > Subject: RE: cannot read complete HTTP request body. It reads only 8192
> > > characters
> > >
> > > String keyValuePair = null;
> > > String[] arrKeyValue = null;
> > > BufferedReader in = request.getReader();
> > > while ((keyValuePair = in.readLine()) != null) {
> > > arrKeyValue = keyValuePair.split("=");
> > >
> > > Above code reads incomplete data(read only 8192 bytes) at my customer's
> > > environment, but reads complete data in my environment.
> > >
> > > String keyValuePair = null;
> > > String[] arrKeyValue = null;
> > > BufferedReader in = new BufferedReader(new
> > > InputStreamReader(request.getInputStream()));
> > > while ((keyValuePair = in.readLine()) != null) {
> > > arrKeyValue = keyValuePair.split("=");
> > >
> > > Above code reads complete data in both the environments. *no changes
> done
> > > to customer's environment.
> > >
> > > I hope you can help me now by finding the reason for data lost at my
> > > customer's environment when using request.getReader().
> > >
> > > Thanks and Regards,
> > > Harish
> > >
> > > -----Original Message-----
> > > From: André Warnier [mailto:aw@ice-sa.com]
> > > Sent: Friday, October 28, 2011 9:08 PM
> > > To: Tomcat Users List
> > > Subject: Re: cannot read complete HTTP request body. It reads only 8192
> > > characters
> > >
> > > Konstantin Kolinko wrote:
> > > > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> > > >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> > > >>> Thanks for the directions the Rainer. Actually the issue is just
> > > >>> solved.
> > > >>>
> > > >>> We have changed from BufferedReader in = request.getReader();
> > > >>>
> > > >>> to
> > > >>>
> > > >>> BufferedReader in = new BufferedReader(new
> > > >>> InputStreamReader(request.getInputStream()));
> > > >>>
> > > >>> Now whole body has been read at my client's environment as well.
> > > >>>
> > > >>> But would like to know, what causes the issue. Do you have any
> > > >>> idea, why same method can read whole data in my environment and
> > > >>> does not read whole data at my customer's environment?
> > > >> You'll have to provide more information, such as the code you are
> > > >> using.
> > > >>
> > > >> I'm fairly sure Tomcat is not the source of the problem.
> > > >>
> > > >
> > > > +1.
> > > >
> > > > I think you need to pay more attention on the documentation of the
> > > > java.io.Reader#read() method, or maybe look for a tutorial.
> > > >
> > > > See also documentation for java.io.InputStream#available().
> > > >
> > > > In short:  the read() method returns a portion of data that is
> > > > currently available. If you need more data you must call read()
> > > > repeatedly in a loop until it returns -1.
> > > >
> > >
> > > .. and the difference between two systems, may be that on one system,
> the
> > > network is
> > > faster (or the system slower, or the buffer bigger) and so by the time
> > you
> > > do the read,
> > > there are more bytes available in the buffer.
> > >
> > > > If you had provided some of your source code that performs reading,
> we
> > > > would be able to point at the exact error in your code.
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > > For additional commands, e-mail: users-help@tomcat.apache.org
> > >
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > > For additional commands, e-mail: users-help@tomcat.apache.org
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

RE: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Anantaneni Harish <an...@vertexsoft.com>.
Dont know :(, must be different. 

Thanks and Regards,
Harish

-----Original Message-----
From: Igor Cicimov [mailto:icicimov@gmail.com] 
Sent: Tuesday, November 01, 2011 10:57 AM
To: Tomcat Users List
Subject: RE: cannot read complete HTTP request body. It reads only 8192 characters

And same kernel network settings?
 On Nov 1, 2011 12:50 PM, "Anantaneni Harish" <
anantaneni.harish@vertexsoft.com> wrote:

> Both environments have the following softwares.
>
> OS      Name    Red Hat Enterprise Linux
>        Version release 5.3 (Tikanga)
> Java    Name    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
>        Version 1.6.0_13
> Tomcat  Name    apache-tomcat
>        Version 5.5.28
>
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Igor Cicimov [mailto:icicimov@gmail.com]
> Sent: Tuesday, November 01, 2011 10:47 AM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192
> characters
>
> You never said what is the difference between your environment and the
> customer one or I missed that info. Same OS? Same Java version?
>
> On Tue, Nov 1, 2011 at 12:42 PM, Anantaneni Harish <
> anantaneni.harish@vertexsoft.com> wrote:
>
> >
> > Any thoughts about this?
> >
> > Thanks and Regards,
> > Harish
> > -----Original Message-----
> > From: Anantaneni Harish
> > Sent: Monday, October 31, 2011 11:23 AM
> > To: Tomcat Users List
> > Subject: RE: cannot read complete HTTP request body. It reads only 8192
> > characters
> >
> > String keyValuePair = null;
> > String[] arrKeyValue = null;
> > BufferedReader in = request.getReader();
> > while ((keyValuePair = in.readLine()) != null) {
> > arrKeyValue = keyValuePair.split("=");
> >
> > Above code reads incomplete data(read only 8192 bytes) at my customer's
> > environment, but reads complete data in my environment.
> >
> > String keyValuePair = null;
> > String[] arrKeyValue = null;
> > BufferedReader in = new BufferedReader(new
> > InputStreamReader(request.getInputStream()));
> > while ((keyValuePair = in.readLine()) != null) {
> > arrKeyValue = keyValuePair.split("=");
> >
> > Above code reads complete data in both the environments. *no changes done
> > to customer's environment.
> >
> > I hope you can help me now by finding the reason for data lost at my
> > customer's environment when using request.getReader().
> >
> > Thanks and Regards,
> > Harish
> >
> > -----Original Message-----
> > From: André Warnier [mailto:aw@ice-sa.com]
> > Sent: Friday, October 28, 2011 9:08 PM
> > To: Tomcat Users List
> > Subject: Re: cannot read complete HTTP request body. It reads only 8192
> > characters
> >
> > Konstantin Kolinko wrote:
> > > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> > >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> > >>> Thanks for the directions the Rainer. Actually the issue is just
> > >>> solved.
> > >>>
> > >>> We have changed from BufferedReader in = request.getReader();
> > >>>
> > >>> to
> > >>>
> > >>> BufferedReader in = new BufferedReader(new
> > >>> InputStreamReader(request.getInputStream()));
> > >>>
> > >>> Now whole body has been read at my client's environment as well.
> > >>>
> > >>> But would like to know, what causes the issue. Do you have any
> > >>> idea, why same method can read whole data in my environment and
> > >>> does not read whole data at my customer's environment?
> > >> You'll have to provide more information, such as the code you are
> > >> using.
> > >>
> > >> I'm fairly sure Tomcat is not the source of the problem.
> > >>
> > >
> > > +1.
> > >
> > > I think you need to pay more attention on the documentation of the
> > > java.io.Reader#read() method, or maybe look for a tutorial.
> > >
> > > See also documentation for java.io.InputStream#available().
> > >
> > > In short:  the read() method returns a portion of data that is
> > > currently available. If you need more data you must call read()
> > > repeatedly in a loop until it returns -1.
> > >
> >
> > .. and the difference between two systems, may be that on one system, the
> > network is
> > faster (or the system slower, or the buffer bigger) and so by the time
> you
> > do the read,
> > there are more bytes available in the buffer.
> >
> > > If you had provided some of your source code that performs reading, we
> > > would be able to point at the exact error in your code.
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


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


RE: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Igor Cicimov <ic...@gmail.com>.
And same kernel network settings?
 On Nov 1, 2011 12:50 PM, "Anantaneni Harish" <
anantaneni.harish@vertexsoft.com> wrote:

> Both environments have the following softwares.
>
> OS      Name    Red Hat Enterprise Linux
>        Version release 5.3 (Tikanga)
> Java    Name    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
>        Version 1.6.0_13
> Tomcat  Name    apache-tomcat
>        Version 5.5.28
>
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Igor Cicimov [mailto:icicimov@gmail.com]
> Sent: Tuesday, November 01, 2011 10:47 AM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192
> characters
>
> You never said what is the difference between your environment and the
> customer one or I missed that info. Same OS? Same Java version?
>
> On Tue, Nov 1, 2011 at 12:42 PM, Anantaneni Harish <
> anantaneni.harish@vertexsoft.com> wrote:
>
> >
> > Any thoughts about this?
> >
> > Thanks and Regards,
> > Harish
> > -----Original Message-----
> > From: Anantaneni Harish
> > Sent: Monday, October 31, 2011 11:23 AM
> > To: Tomcat Users List
> > Subject: RE: cannot read complete HTTP request body. It reads only 8192
> > characters
> >
> > String keyValuePair = null;
> > String[] arrKeyValue = null;
> > BufferedReader in = request.getReader();
> > while ((keyValuePair = in.readLine()) != null) {
> > arrKeyValue = keyValuePair.split("=");
> >
> > Above code reads incomplete data(read only 8192 bytes) at my customer's
> > environment, but reads complete data in my environment.
> >
> > String keyValuePair = null;
> > String[] arrKeyValue = null;
> > BufferedReader in = new BufferedReader(new
> > InputStreamReader(request.getInputStream()));
> > while ((keyValuePair = in.readLine()) != null) {
> > arrKeyValue = keyValuePair.split("=");
> >
> > Above code reads complete data in both the environments. *no changes done
> > to customer's environment.
> >
> > I hope you can help me now by finding the reason for data lost at my
> > customer's environment when using request.getReader().
> >
> > Thanks and Regards,
> > Harish
> >
> > -----Original Message-----
> > From: André Warnier [mailto:aw@ice-sa.com]
> > Sent: Friday, October 28, 2011 9:08 PM
> > To: Tomcat Users List
> > Subject: Re: cannot read complete HTTP request body. It reads only 8192
> > characters
> >
> > Konstantin Kolinko wrote:
> > > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> > >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> > >>> Thanks for the directions the Rainer. Actually the issue is just
> > >>> solved.
> > >>>
> > >>> We have changed from BufferedReader in = request.getReader();
> > >>>
> > >>> to
> > >>>
> > >>> BufferedReader in = new BufferedReader(new
> > >>> InputStreamReader(request.getInputStream()));
> > >>>
> > >>> Now whole body has been read at my client's environment as well.
> > >>>
> > >>> But would like to know, what causes the issue. Do you have any
> > >>> idea, why same method can read whole data in my environment and
> > >>> does not read whole data at my customer's environment?
> > >> You'll have to provide more information, such as the code you are
> > >> using.
> > >>
> > >> I'm fairly sure Tomcat is not the source of the problem.
> > >>
> > >
> > > +1.
> > >
> > > I think you need to pay more attention on the documentation of the
> > > java.io.Reader#read() method, or maybe look for a tutorial.
> > >
> > > See also documentation for java.io.InputStream#available().
> > >
> > > In short:  the read() method returns a portion of data that is
> > > currently available. If you need more data you must call read()
> > > repeatedly in a loop until it returns -1.
> > >
> >
> > .. and the difference between two systems, may be that on one system, the
> > network is
> > faster (or the system slower, or the buffer bigger) and so by the time
> you
> > do the read,
> > there are more bytes available in the buffer.
> >
> > > If you had provided some of your source code that performs reading, we
> > > would be able to point at the exact error in your code.
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

RE: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Anantaneni Harish <an...@vertexsoft.com>.
Both environments have the following softwares. 

OS	Name	Red Hat Enterprise Linux
 	Version	release 5.3 (Tikanga)
Java	Name	Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
 	Version	1.6.0_13
Tomcat	Name	apache-tomcat
 	Version	5.5.28

Thanks and Regards,
Harish
-----Original Message-----
From: Igor Cicimov [mailto:icicimov@gmail.com] 
Sent: Tuesday, November 01, 2011 10:47 AM
To: Tomcat Users List
Subject: Re: cannot read complete HTTP request body. It reads only 8192 characters

You never said what is the difference between your environment and the
customer one or I missed that info. Same OS? Same Java version?

On Tue, Nov 1, 2011 at 12:42 PM, Anantaneni Harish <
anantaneni.harish@vertexsoft.com> wrote:

>
> Any thoughts about this?
>
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Anantaneni Harish
> Sent: Monday, October 31, 2011 11:23 AM
> To: Tomcat Users List
> Subject: RE: cannot read complete HTTP request body. It reads only 8192
> characters
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = request.getReader();
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads incomplete data(read only 8192 bytes) at my customer's
> environment, but reads complete data in my environment.
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = new BufferedReader(new
> InputStreamReader(request.getInputStream()));
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads complete data in both the environments. *no changes done
> to customer's environment.
>
> I hope you can help me now by finding the reason for data lost at my
> customer's environment when using request.getReader().
>
> Thanks and Regards,
> Harish
>
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com]
> Sent: Friday, October 28, 2011 9:08 PM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192
> characters
>
> Konstantin Kolinko wrote:
> > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> >>> Thanks for the directions the Rainer. Actually the issue is just
> >>> solved.
> >>>
> >>> We have changed from BufferedReader in = request.getReader();
> >>>
> >>> to
> >>>
> >>> BufferedReader in = new BufferedReader(new
> >>> InputStreamReader(request.getInputStream()));
> >>>
> >>> Now whole body has been read at my client's environment as well.
> >>>
> >>> But would like to know, what causes the issue. Do you have any
> >>> idea, why same method can read whole data in my environment and
> >>> does not read whole data at my customer's environment?
> >> You'll have to provide more information, such as the code you are
> >> using.
> >>
> >> I'm fairly sure Tomcat is not the source of the problem.
> >>
> >
> > +1.
> >
> > I think you need to pay more attention on the documentation of the
> > java.io.Reader#read() method, or maybe look for a tutorial.
> >
> > See also documentation for java.io.InputStream#available().
> >
> > In short:  the read() method returns a portion of data that is
> > currently available. If you need more data you must call read()
> > repeatedly in a loop until it returns -1.
> >
>
> .. and the difference between two systems, may be that on one system, the
> network is
> faster (or the system slower, or the buffer bigger) and so by the time you
> do the read,
> there are more bytes available in the buffer.
>
> > If you had provided some of your source code that performs reading, we
> > would be able to point at the exact error in your code.
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


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


Re: cannot read complete HTTP request body. It reads only 8192 characters

Posted by Igor Cicimov <ic...@gmail.com>.
You never said what is the difference between your environment and the
customer one or I missed that info. Same OS? Same Java version?

On Tue, Nov 1, 2011 at 12:42 PM, Anantaneni Harish <
anantaneni.harish@vertexsoft.com> wrote:

>
> Any thoughts about this?
>
> Thanks and Regards,
> Harish
> -----Original Message-----
> From: Anantaneni Harish
> Sent: Monday, October 31, 2011 11:23 AM
> To: Tomcat Users List
> Subject: RE: cannot read complete HTTP request body. It reads only 8192
> characters
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = request.getReader();
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads incomplete data(read only 8192 bytes) at my customer's
> environment, but reads complete data in my environment.
>
> String keyValuePair = null;
> String[] arrKeyValue = null;
> BufferedReader in = new BufferedReader(new
> InputStreamReader(request.getInputStream()));
> while ((keyValuePair = in.readLine()) != null) {
> arrKeyValue = keyValuePair.split("=");
>
> Above code reads complete data in both the environments. *no changes done
> to customer's environment.
>
> I hope you can help me now by finding the reason for data lost at my
> customer's environment when using request.getReader().
>
> Thanks and Regards,
> Harish
>
> -----Original Message-----
> From: André Warnier [mailto:aw@ice-sa.com]
> Sent: Friday, October 28, 2011 9:08 PM
> To: Tomcat Users List
> Subject: Re: cannot read complete HTTP request body. It reads only 8192
> characters
>
> Konstantin Kolinko wrote:
> > 2011/10/27 Christopher Schultz <ch...@christopherschultz.net>:
> >> On 10/27/2011 4:58 AM, Anantaneni Harish wrote:
> >>> Thanks for the directions the Rainer. Actually the issue is just
> >>> solved.
> >>>
> >>> We have changed from BufferedReader in = request.getReader();
> >>>
> >>> to
> >>>
> >>> BufferedReader in = new BufferedReader(new
> >>> InputStreamReader(request.getInputStream()));
> >>>
> >>> Now whole body has been read at my client's environment as well.
> >>>
> >>> But would like to know, what causes the issue. Do you have any
> >>> idea, why same method can read whole data in my environment and
> >>> does not read whole data at my customer's environment?
> >> You'll have to provide more information, such as the code you are
> >> using.
> >>
> >> I'm fairly sure Tomcat is not the source of the problem.
> >>
> >
> > +1.
> >
> > I think you need to pay more attention on the documentation of the
> > java.io.Reader#read() method, or maybe look for a tutorial.
> >
> > See also documentation for java.io.InputStream#available().
> >
> > In short:  the read() method returns a portion of data that is
> > currently available. If you need more data you must call read()
> > repeatedly in a loop until it returns -1.
> >
>
> .. and the difference between two systems, may be that on one system, the
> network is
> faster (or the system slower, or the buffer bigger) and so by the time you
> do the read,
> there are more bytes available in the buffer.
>
> > If you had provided some of your source code that performs reading, we
> > would be able to point at the exact error in your code.
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>