Hi,

Mamy thanks for your email.

On Fri, May 2, 2025 at 1:42 PM Christopher Schultz <
ch...@christopherschultz.net> wrote:

> Ernesto,
>
> On 5/1/25 8:51 PM, Ernesto Reinaldo Barreiro wrote:
> > We have an Apache Wicket application that I just ported to wicket 10. The
> > application works as expected with the latest Tomcat 10.1.40. But our
> > application does not work with Tomcat 11.0.6 because file upload
> (multipart
> > processing is broken).
> >
> > Apache wicket 10.x uses fileupload2.jakarta.servlet5 thus I create a
> branch
> > using fileupload2.jakarta.servlet6 (
> >
> https://mvnrepository.com/artifact/org.apache.commons/commons-fileupload2-jakarta-servlet6/2.0.0-M2
> )
> > thinking that might be the problem... But after some debugging the
> problem
> > seems to be in Http11InputBuffer and related classes (it seems the whole
> > package is very different from 10.x branch) or the way fileupload2 is
> using
> > them.
> >
> > Has anyone experienced any similar problems?
>
> Are you able to package a simple test-case for this?
>

I would try to create something using Wicket. Or maybe fileupload2... But I
do not know tomcat codebase


>
> Does Wicket handle its own multipart logic, or is it relying on Tomcat
> to provide that facility?
>

Wicket handles the multipart logic via

https://mvnrepository.com/artifact/org.apache.commons/commons-fileupload2-jakarta-servlet6/2.0.0-M2

Wicket includes some machinery to "push" upload progress notifications to
the client side (this is done via some special counting stream wrapped
around the original stream).

See
https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java#L163

By the way, it would be nice to have something like that baked into tomcat
too.

The problem is when this machinery in Wicket is used then tomcat has
already "exhausted" the request.  I.e. Method

https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java#L178

finds no files and no parameters as the underlying Http11InputBuffer was
already consumed by tomcat. Wicket can always recover those via
request.getParts() but then upload progress will not work
Thus, it is not clear to me this is a tomcat problem, just that Wicket
needs to plug in this "machinery" (MultipartServletWebRequestImpl) early
on... I'm trying to do so in Wicket code.


> Tomcat 10 and 11 are very similar to each other, though they support
> different versions of the relevant Jakarta EE APIs. Is Wicket 10
> documented to work with Jakarta EE 11? Is Wicket 10 documented to work
> with Jakarta EE 10?
>

I'm not certain what the documentation says... I'm just porting our
application and I have found out these problems in Wicket and I'm trying to
fix them.
Regarding tomat I have compared the code and I see a few changes in tomcat
11.x regarding the http1 package that are not part of 10.1.x. Wicket works
ok with 10.1.x

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

-- 
Regards - Ernesto Reinaldo Barreiro

Reply via email to