Thanks everyone!

As I am not ready to switch to Jakarta EE just yet, I went back to Jetty 10 and 
it seems that, for now, all my issues have disappeared.

I’ll inevitably revisit the subject once I upgrade to Wicket 10 😊

Kind regards,
Martin



Von: Martin Grigorov <mgrigo...@apache.org>
Datum: Dienstag, 23. Januar 2024 um 10:05
An: users@wicket.apache.org <users@wicket.apache.org>
Betreff: Re: Wicket 9 + Jetty 12: Lots of exceptions due to modification of 
read-only response
https://issues.apache.org/jira/browse/WICKET-7075
I will backport it to 9.x !

On Tue, Jan 23, 2024 at 10:26 AM Martin Grigorov <mgrigo...@apache.org>
wrote:

> Hi,
>
> On Mon, Jan 22, 2024 at 6:09 PM Martin Simons <martin@simulogics.games>
> wrote:
>
>> Hey everyone,
>>
>> I started a gnarly migration of a really old Wicket 6 application to
>> Wicket 9 last week. One of the objectives was to move away from a
>> .war-based deployment to a Tomcat app server, and instead go with an
>> embedded server which runs within a Docker file. The choice here fell on
>> Jetty 12 using the EE8 environment.
>>
>
> Are you still able to deploy to Tomcat ? If YES then it would be good to
> check whether your app will experience the same errors there too!
>
>
>>
>> So far, so good. After getting all the API changes sorted out, most
>> things work as expected. But what puzzles me is that I get the logs flooded
>> with exceptions because different pieces of code try to write to the web
>> response at a point in the web request cycle when it has already been
>> committed.
>>
>> For Wicket itself, this affects the COOP and COEP filters when handling
>> HEAD requests.
>>
>
> COOP and COEP are new in Wicket 9.x, so it is quite possible that they
> might have issues with HEAD requests.
> Please provide failing unit tests and/or a quickstart and/or at least
> stacktraces!
>
>
>>
>> My one code is affected (for example) when trying to set a cookie at the
>> end of a request cycle.
>>
>> So two questions:
>>
>>   1.  I am likely missing something obvious. Does anyone see what it
>> might be?
>>   2.  Regarding my own code: I get that I can’t write to a response
>> that’s been committed, but what’s “the Wicket way” to modify a response
>> header after the response has been processed but before it is written?
>> RequestCycleListener::onEndRequest() seems to be too late.
>
>
> RequestCycle[Listener]#onEndRequest() is called before
> HttpServletResponse#flush(), so it shouldn't be that late. But I need to
> debug the app to tell whether the response is buffering or not.
> See org.apache.wicket.protocol.http.HeaderBufferingWebResponse
>
>
> If you were using Wicket 10.x + servlet-api 6.x then you could use
> https://jakarta.ee/specifications/servlet/6.0/apidocs/jakarta.servlet/jakarta/servlet/http/httpservletresponse#setTrailerFields(java.util.function.Supplier)
>
>
>
>
>>
>> I found surprisingly little on this problem when googling, so I am almost
>> certain it’s my mistake. But after looking at it for days, I am sort of
>> stuck. I would greatly appreciate a few pointers.
>>
>> Thank you very much,
>> Martin
>>
>

Reply via email to