Hi Christopher ,

>>So... what makes you sure that the browser actually made the request?
>>I'd like to see some kind of confirmation using a tool you didn't
>>write. Perhaps something like Firebug, LiveHttpHeaders, Fiddler, or
>>even Wireshark showing that the request was made, what headers it had,
>>etc.

OK,
We have used HTTP Analayzer for file upload via Internet Explorer-8. Following 
are the scenario observed.

For lesser than 2gb file uploads : The request header shows the correct 
content-length value of the file.The uploads works fine further also.

For more than 2gb file uploads: The file length is 2151533567 bytes(which is 
roughly 2.15 Gb).  The request is aborted in this case and the request header 
shows the content length 
as -214343325 bytes (which is rougly 214 Mb).The upload process does not 
proceed further in this case.

both cases request headers are attached in screenshot.
________________________________________
From: Christopher Schultz <ch...@christopherschultz.net>
Sent: Monday, January 18, 2016 11:17 AM
To: Tomcat Users List
Subject: Re: File size >= 2GB not uploaded in application [Tomcat 7.0.54 
Struts: 2.3.24 JAVA: openJDK 1.7.79]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Rahul,

On 1/17/16 11:28 PM, Rahul Singh wrote:
> Code flow is attached, forgot to attach in trailing mail.
>
> ----------------------------------------------------------------------
- --
>
>
*From:* Rahul Singh <rksing...@hotmail.com>
> *Sent:* Monday, January 18, 2016 8:39 AM *To:* Tomcat Users List
> *Subject:* Re: File size >= 2GB not uploaded in application
> [Tomcat 7.0.54 Struts: 2.3.24 JAVA: openJDK 1.7.79]
>
> Hello Christopher, thanks for your prompt response !!
>
>> Why didn't you come to the Tomcat community first?
> Sorry for the delay, we wanted to make sure about the component
> causing the problem.
>
>
>>> I don't have a test-case in front of me, but I'm fairly
>>> confident that Tomcat allows file uploads of greater than 2GiB.
>>> I suspect the problem
> is another component.
>>> Are you using Servlet 3.0-based file upload, or are you
>>> allowing Struts to handle the file-upload for you? If you use
>>> Servlet-3.0 file-upload, then you'll have code that deals with
>>> Multipart classes and configuration in web.xml. If you are
>>> using Struts's file-upload, then you'll mostly just be calling
>>> getFile or getInputStream or however Struts 2 does things (I
>>> can't remember how it all works off the top of my head).
>
>
> In our case the filter class implements the javax.servlet.flter
> and imports javax.servlet.* The Filter class mentioned in the
> previous threads is the first one as declared in the web.xml
> (followed by other struts filters). All (url) requests are mapped
> to this filter. So this is where our file upload request goes. It
> is only in greater than 2 gb file upload request that the
> dofilter() fails to get any request. So we feel servlet 3.0 being
> used in our case the Filter is not being able to handle greater
> than 2 gb requests.
>
>
>>> The point is, if you are using Struts, then Tomcat will not
>>> touch the request and Struts is handling the whole thing. If
>>> Struts is the problem, you'll need to talk to the Struts
>>> team[1].
>
>>> If you are using Servlet-3.0 file-upload, then Struts is just a
>>> red herring and this is the right place to get your issue
>>> solved.
>
> As mentioned above Servlet 3.0 is being used. So request the
> tomcat community to please look into our issue.
>
>>> So far, you have posted some configuration for Struts and some
>>> JSP tablib-filled code, plus some Java code for a Filter. You
>>> didn't say where the Filter was in the filter chain (before or
>>> after Struts filter). You also mentioned that the form is
>>> actually posted using XMLHttpRequest and not through a standard
>>> form, but you didn't explain what component is doing that or
>>> how it actually works.
>
>>> There isn't enough information here to make any sense of the
>>> situation. Can you please address all of the questions I've
>>> posed above and maybe we can then help you?
>
>
> <<<Code model >>>> We need to model the following code to be told:
> jsp submit of the form How the .js submit it further in
> XmlHttpRequest How the Filter is declared How the web.xml is
> declared
>
>
>> Are you sure the request is even made to the server in these
>> cases?What if the Javascript upload component is failing before
>> it even starts?
>
> Yes the request is made in these cases. We have compared the
> scenario for greater than 2gb and lesser size file uploads and
> drawn the following inference from it.We have checked the request
> and content length for dofilter() method in our logs. The
> JavaScript is not the culprit in this case. The JavaScript sets the
> AJAX field to success after sending request and thereafter waits
> for response(which is not received in our case). Our application
> works fine for lesser than 2 gb fie uploads but fails for greater
> size files as the request fails to reach the dofilter() method
> after which the request can be forwarded to the requested method.
>
>
>
> Regards, Rahul
>
> ________________________________________ From: Christopher Schultz
> <ch...@christopherschultz.net> Sent: Saturday, January 16, 2016
> 9:33 AM To: Tomcat Users List Subject: Re: File size >= 2GB not
> uploaded in application [Tomcat 7.0.54 Struts: 2.3.24 JAVA: openJDK
> 1.7.79]
>
> Rahul,
>
> On 1/15/16 1:02 AM, Rahul Singh wrote:
>> Thanks for your guidelines, we have big hope from Apache Tomcat
>> Team to solve this problem as this is show stopper for our
>> application, we have also raise this question on various forum
>> like stack overflow and other, but no relevant reply till now.
>
> Why didn't you come to the Tomcat community first?
>
>> Hope you understand my situation,
>
>> please refer the below stackoverflow reference for more detail
>> about this issue.
>
>> http://stackoverflow.com/questions/34783438/dofilter-fails-to-get-any
- -
>
>>
<http://stackoverflow.com/questions/34783438/dofilter-fails-to-get-any->
>  doFilter() fails to get any request for the file upload > 2gb
> <http://stackoverflow.com/questions/34783438/dofilter-fails-to-get-any
- ->
>
>
stackoverflow.com
> For my struts project the doFilter() fails to get any request from
> the file upload form in cases the size of the file is greater than
> 2gb. Below is the code fragment: Filter (class is FilterUp) is...
>
>
>
> request-for-the-file-upload-2gb?noredirect=1#comment57315528_34783438
>
>
>
>
> for more information:
>
>> -No error are printed in tomcat logs. - how to configure "call
>> HttpServletRequest.getHeader("Content-Length") as a String and
>> parse it yourself."
>
> I don't have a test-case in front of my, but I'm fairly confident
> that Tomcat allows file uploads of greater than 2GiB. I suspect the
> problem is another component.
>
> Are you using Servlet 3.0-based file upload, or are you allowing
> Struts to handle the file-upload for you? If you use Servlet-3.0
> file-upload, then you'll have code that deals with Multipart
> classes and configuration in web.xml. If you are using Struts's
> file-upload, then you'll mostly just be calling getFile or
> getInputStream or however Struts 2 does things (I can't remember
> how it all works off the top of my head).
>
> The point is, if you are using Struts, then Tomcat will not touch
> the request and Struts is handling the whole thing. If Struts is
> the problem, you'll need to talk to the Struts team[1].
>
> If you are using Servlet-3.0 file-upload, then Struts is just a
> red herring and this is the right place to get your issue solved.
>
> So far, you have posted some configuration for Struts and some JSP
> tablib-filled code, plus some Java code for a Filter. You didn't
> say where the Filter was in the filter chain (before or after
> Struts filter).  You also mentioned that the form is actually
> posted using XMLHttpRequest and not through a standard form, but
> you didn't explain what component is doing that or how it actually
> works.
>
> There isn't enough information here to make any sense of the
> situation. Can you please address all of the questions I've posed
> above and maybe we can then help you?
>
> Are you sure the request is even made to the server in these
> cases? What if the Javascript upload component is failing before it
> even starts ?
>
> -chris
>
> [1] http://struts.apache.org/mail.html
>
>> ________________________________________ From: Christopher
>> Schultz <ch...@christopherschultz.net> Sent: Thursday, January
>> 14, 2016 8:43 PM To: Tomcat Users List Subject: Re: File size >=
>> 2GB not uploaded in application [Tomcat 7.0.54 Struts: 2.3.24
>> JAVA: openJDK 1.7.79]
>
>> André,
>
>> On 1/14/16 5:02 AM, André Warnier (tomcat) wrote:
>>> I have not followed this thread in details, but did you check
>>> this :
>>>
>>> http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Common_Attr
i
>
>>>
butes
>>>
>>>
>>>
> --> maxPostSize
>
>> +1
>
>>> The maximum size in bytes of the POST which will be handled by
>>> the container FORM URL parameter parsing. The limit can be
>>> disabled by setting this attribute to a value less than zero.
>>> If not specified, this attribute is set to 2097152 (2
>>> megabytes). Note that the FailedRequestFilter can be used to
>>> reject requests that exceed this limit.
>>>
>>> Note: the size above might relate to the *encoded* size of the
>>> file, as it is transmitted over the WWW (possibly encoded as
>>> Base64 e.g.), which may mean that an original 1 MB file
>>> translates to more than 1 MB bytes while being uploaded.
>>>
>>> Note also : maybe "Struts" is setting this to some other
>>> default value..
>>>
>>> Another question : did you check the Tomcat logs ?
>
>> IIRC, Tomcat doesn't log anything in these cases. You have to
>> use the FailedRequestFilter to detect and report the condition.
>> I wouldn't use that Filter in productio, but it would be good as
>> a simple test to see if this is the error that is occurring.
>
>> When Tomcat refuses to allow a file upload that it too large, it
>> simply does not parse the parameters, but the request continues
>> to process as usual (but the servlet doesn't end up getting any
>> of the parameters). I'm surprised that Struts isn't getting the
>> request in these cases.
>
>> -chris

So... what makes you sure that the browser actually made the request?
I'd like to see some kind of confirmation using a tool you didn't
write. Perhaps something like Firebug, LiveHttpHeaders, Fiddler, or
even Wireshark showing that the request was made, what headers it had,
etc.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlacfGwACgkQ9CaO5/Lv0PDZ9wCgk9toUxcJpCosg5Nx5sKDF6lB
MQ4AnimyBJlk2kFmNj/Kiolfd8WQUYLR
=TuoH
-----END PGP SIGNATURE-----

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

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

Reply via email to