On Wed, Nov 19, 2025 at 3:33 PM Malte <[email protected]>
wrote:
> Thank you for the quick response.
>
>
> I’ve tried it again now and had the corresponding thread displayed — this
> time with a different name. I’ve also added the thread to the log.
>
> The thrown exception is this one:
> org.apache.wicket.page.PageLockedException: This thread qtp27122009-55
> holds the lock to page 0
>
>
> Log output:
>
> qtp27122009-55>>> 3828 onBeginRequest:
> qtp27122009-55<<< 3838 onRequestHandlerResolved [10ms]:
> RenderPageRequestHandler
> qtp27122009-55=== 5108 onEndRequest [1280ms]
>
I don't know what kind of log file format this is.
In your web server stdout you should see a thread dump of all threads. One
of the threads should have a name "qtp27122009-55". It stack trace should
tell you what exactly hangs.
If you run your app on Linux you can also use "kill -3 YOUR_APP_PID" to get
the thread dump.
> qtp27122009-63>>> 5234 onBeginRequest: ?0
> qtp27122009-63<<< 5234 onRequestHandlerResolved [0ms]:
> BufferedResponseRequestHandler
> qtp27122009-63=== 5245 onEndRequest [11ms] ?0
> qtp27122009-64>>> 5280 onBeginRequest: css/prisma_style_1600.css
> qtp27122009-64=== 5281 onEndRequest [1ms] css/prisma_style_1600.css
> qtp27122009-55>>> 5285 onBeginRequest: wic
> ket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-3.7.1-ver-1763474747505.js
> qtp27122009-55<<< 5286 onRequestHandlerResolved [1ms]:
> ResourceReferenceRequestHandler
> qtp27122009-57>>> 5289 onBeginRequest:
> wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1763474747505.js
> qtp27122009-57<<< 5290 onRequestHandlerResolved [1ms]:
> ResourceReferenceRequestHandler
> qtp27122009-57=== 5293 onEndRequest [4ms]
> wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1763474747505.js
> qtp27122009-58>>> 5293 onBeginRequest:
> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteButtonBehavior/AutocompleteButtonBehavior-ver-1693220747281.js
> qtp27122009-55=== 5293 onEndRequest [0ms]
> wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-3.7.1-ver-1763474747505.js
> qtp27122009-58<<< 5293 onRequestHandlerResolved [0ms]:
> ResourceReferenceRequestHandler
> qtp27122009-58=== 5295 onEndRequest [2ms]
> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteButtonBehavior/AutocompleteButtonBehavior-ver-1693220747281.js
> qtp27122009-70>>> 5307 onBeginRequest:
> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteBehavior/wicket-autocomplete-modified-ver-1693220747283.js
> qtp27122009-70<<< 5307 onRequestHandlerResolved [0ms]:
> ResourceReferenceRequestHandler
> qtp27122009-58>>> 5308 onBeginRequest: js/prisma.min.js
> qtp27122009-58=== 5309 onEndRequest [1ms] js/prisma.min.js
> qtp27122009-70=== 5309 onEndRequest [1ms]
> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteBehavior/wicket-autocomplete-modified-ver-1693220747283.js
> qtp27122009-63>>> 5323 onBeginRequest: css/prisma_style_768.css
> qtp27122009-63=== 5323 onEndRequest [0ms] css/prisma_style_768.css
> qtp27122009-65>>> 5335 onBeginRequest: css/prisma_style_1024_portrait.css
> qtp27122009-65=== 5335 onEndRequest [0ms]
> css/prisma_style_1024_portrait.css
> qtp27122009-66>>> 5347 onBeginRequest: css/prisma_style_1024.css
> qtp27122009-66=== 5347 onEndRequest [0ms] css/prisma_style_1024.css
> qtp27122009-63>>> 5359 onBeginRequest: css/prisma_style_1366.css
> qtp27122009-63=== 5359 onEndRequest [0ms] css/prisma_style_1366.css
> qtp27122009-56>>> 5364 onBeginRequest: css/prisma_style_1440.css
> qtp27122009-56=== 5365 onEndRequest [1ms] css/prisma_style_1440.css
> qtp27122009-66>>> 5386 onBeginRequest: fonts/NotesWeb-RegularTf.woff
> qtp27122009-66=== 5386 onEndRequest [0ms] fonts/NotesWeb-RegularTf.woff
> qtp27122009-58>>> 5389 onBeginRequest: fonts/prismaone-icons.woff
> qtp27122009-69>>> 5389 onBeginRequest: fonts/NotesWeb-RegularItalicTf.woff
> qtp27122009-69=== 5389 onEndRequest [0ms]
> fonts/NotesWeb-RegularItalicTf.woff
> qtp27122009-58=== 5389 onEndRequest [0ms] fonts/prismaone-icons.woff
> qtp27122009-54>>> 66973 onBeginRequest:
> ?0-1.0-topbar-search_form-search_form_submit&0-1.-topbar-search_form&search_form_text=b&search_form_submit=1&_=1763558058056
> qtp27122009-54<<< 150107 onRequestHandlerResolved [83134ms]:
> RenderPageRequestHandler
> qtp27122009-54=== 150127 onEndRequest [83154ms]
> ?0-1.0-topbar-search_form-search_form_submit&0-1.-topbar-search_form&search_form_text=b&search_form_submit=1&_=1763558058056
> qtp27122009-72>>> 151141 onBeginRequest: wicket/page?1
>
> Here is the thread in the IDE when it becomes idle:
> [image: grafik.png]
>
> By the way, this is my code in Webapplication#init that generates the logs:
>
> final long appStartTime = System.currentTimeMillis();
>
> getRequestCycleListeners().add(new IRequestCycleListener() {
> private long startTime;
>
> @Override
> public void onBeginRequest(RequestCycle cycle) {
> startTime = System.currentTimeMillis();
> System.out.println(Thread.currentThread().getName() + ">>> "+
> getTimeSinceAppStart() +" onBeginRequest: " + cycle.getRequest().getUrl() );
> }
>
> @Override
> public void onRequestHandlerResolved(RequestCycle cycle, IRequestHandler
> handler) {
> long duration = System.currentTimeMillis() - startTime;
> System.out.println(Thread.currentThread().getName() + "<<< "+
> getTimeSinceAppStart()+" onRequestHandlerResolved [" + duration + "ms]: " +
> handler.getClass().getSimpleName());
> String url = cycle.getRequest().getUrl().toString();
> }
>
> @Override
> public void onEndRequest(RequestCycle cycle) {
> long duration = System.currentTimeMillis() - startTime;
> System.out.println(Thread.currentThread().getName() + "=== "+
> getTimeSinceAppStart()+" onEndRequest [" + duration + "ms] " +
> cycle.getRequest().getUrl());
> }
>
> private long getTimeSinceAppStart(){
> return System.currentTimeMillis() - appStartTime;
> }
> });
>
>
>
> Best regards,
>
> Malte
>
>
> Am Mi., 19. Nov. 2025 um 13:23 Uhr schrieb Martin Grigorov <
> [email protected]>:
>
>> Hi,
>>
>> Please search for qtp5287243-65 in your logs. This is the id of the thread
>> that received a http request but did not respond in 1 min.
>> It seems to hand on some operation.
>>
>> On Wed, Nov 19, 2025 at 2:14 PM Malte <[email protected]
>> .invalid>
>> wrote:
>>
>> > Hello!
>> >
>> > I’ve picked up an old project again and upgraded it from version 6 to
>> > 10.1. Now I’m running into an issue where Ajax no longer works, which
>> > renders my application unusable.
>> >
>> > Since I haven’t worked on this project for quite some time, I’m not
>> really
>> > familiar with the Wicket system anymore. Maybe someone can give me a
>> hint
>> > about where I should continue looking for the cause of this error.
>> >
>> > The page loads completely, but when I click on the first Ajax button
>> > everything freezes, and after about a minute I get this exception:
>> >
>> > class org.apache.wicket.page.CouldNotLockPageException
>> > org.apache.wicket.page.CouldNotLockPageException: Could not lock page
>> 0.
>> > Attempt lasted PT1M
>> > at
>> > org.apache.wicket.page
>> .DefaultPageLockManager.lockPage(DefaultPageLockManager.java:173)
>> > at
>> > org.apache.wicket.page
>> .PageAccessSynchronizer.lockPage(PageAccessSynchronizer.java:72)
>> > [...] at java.base/java.lang.Thread.run(Thread.java:840)
>> >
>> > Caused by:
>> > org.apache.wicket.page.PageLockedException: This thread qtp5287243-65
>> > holds the lock to page 0
>> > at sun.nio.ch.WEPoll.wait(Native Method)
>> > [...] at java.lang.Thread.run(Thread.java:840)
>> >
>> > I’ve added some more logging and found the button that is likely causing
>> > the issue. It only overrides onSubmit. However, the breakpoint in the
>> > debugger is never hit. Here is my requestlog (first value is time since
>> > start):
>> >
>> > >>> 5299 onBeginRequest:
>> > <<< 5303 onRequestHandlerResolved [4ms]: RenderPageRequestHandler
>> > === 6471 onEndRequest [1172ms]
>> > >>> 6486 onBeginRequest: ?0
>> > <<< 6486 onRequestHandlerResolved [0ms]: BufferedResponseRequestHandler
>> > === 6499 onEndRequest [13ms] ?0
>> > >>> 6546 onBeginRequest: css/prisma_style_1600.css
>> > === 6547 onEndRequest [1ms] css/prisma_style_1600.css
>> > >>> 6547 onBeginRequest:
>> >
>> wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-3.7.1-ver-1763474747505.js
>> > <<< 6548 onRequestHandlerResolved [1ms]: ResourceReferenceRequestHandler
>> > === 6558 onEndRequest [11ms]
>> >
>> wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-3.7.1-ver-1763474747505.js
>> > >>> 6560 onBeginRequest:
>> >
>> wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1763474747505.js
>> > <<< 6560 onRequestHandlerResolved [0ms]: ResourceReferenceRequestHandler
>> > === 6562 onEndRequest [2ms]
>> >
>> wicket/resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-ver-1763474747505.js
>> > >>> 6578 onBeginRequest:
>> >
>> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteButtonBehavior/AutocompleteButtonBehavior-ver-1693220747281.js
>> > <<< 6578 onRequestHandlerResolved [0ms]: ResourceReferenceRequestHandler
>> > === 6579 onEndRequest [1ms]
>> >
>> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteButtonBehavior/AutocompleteButtonBehavior-ver-1693220747281.js
>> > >>> 6584 onBeginRequest:
>> >
>> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteBehavior/wicket-autocomplete-modified-ver-1693220747283.js
>> > <<< 6584 onRequestHandlerResolved [0ms]: ResourceReferenceRequestHandler
>> > === 6586 onEndRequest [2ms]
>> >
>> wicket/resource/de.prisma.one.servlet.gui.wicket.guiElements.autocomplete.AutocompleteBehavior/wicket-autocomplete-modified-ver-1693220747283.js
>> > >>> 6586 onBeginRequest: js/prisma.min.js
>> > === 6587 onEndRequest [1ms] js/prisma.min.js
>> > >>> 6600 onBeginRequest: css/prisma_style_768.css
>> > === 6600 onEndRequest [0ms] css/prisma_style_768.css
>> > >>> 6611 onBeginRequest: css/prisma_style_1024_portrait.css
>> > === 6611 onEndRequest [0ms] css/prisma_style_1024_portrait.css
>> > >>> 6622 onBeginRequest: css/prisma_style_1024.css
>> > === 6622 onEndRequest [0ms] css/prisma_style_1024.css
>> > >>> 6633 onBeginRequest: css/prisma_style_1366.css
>> > === 6633 onEndRequest [0ms] css/prisma_style_1366.css
>> > >>> 6642 onBeginRequest: css/prisma_style_1440.css
>> > === 6642 onEndRequest [0ms] css/prisma_style_1440.css
>> > >>> 6647 onBeginRequest: fonts/NotesWeb-RegularTf.woff
>> > === 6647 onEndRequest [0ms] fonts/NotesWeb-RegularTf.woff
>> > >>> 6649 onBeginRequest: fonts/prismaone-icons.woff
>> > >>> 6649 onBeginRequest: fonts/NotesWeb-RegularItalicTf.woff
>> > === 6650 onEndRequest [1ms] fonts/prismaone-icons.woff
>> > === 6650 onEndRequest [1ms] fonts/NotesWeb-RegularItalicTf.woff
>> > >>> 13582 onBeginRequest:
>> >
>> ?0-1.0-topbar-search_form-search_form_submit&0-1.-topbar-search_form&search_form_text=a&search_form_submit=1&_=1763552644294
>> > <<< 73594 onRequestHandlerResolved [60012ms]: RenderPageRequestHandler
>> > === 73610 onEndRequest [60028ms]
>> >
>> ?0-1.0-topbar-search_form-search_form_submit&0-1.-topbar-search_form&search_form_text=a&search_form_submit=1&_=1763552644294
>> > >>> 73632 onBeginRequest: wicket/page?1 --> Errorpage
>> >
>> > I would really appreciate any help or pointers you can offer. Thanks in
>> > advance!
>> >
>> > Best regards,
>> >
>> > Malte
>> >
>> >
>> > Full Stacktrace:
>> > class org.apache.wicket.page.CouldNotLockPageException
>> > org.apache.wicket.page.CouldNotLockPageException: Could not lock page
>> 0.
>> > Attempt lasted PT1M
>> > at
>> > org.apache.wicket.page
>> .DefaultPageLockManager.lockPage(DefaultPageLockManager.java:173)
>> > at
>> > org.apache.wicket.page
>> .PageAccessSynchronizer.lockPage(PageAccessSynchronizer.java:72)
>> > at
>> > org.apache.wicket.page
>> .PageAccessSynchronizer$1.getPage(PageAccessSynchronizer.java:116)
>> > at
>> >
>> org.apache.wicket.DefaultMapperContext.getPageInstance(DefaultMapperContext.java:101)
>> > at
>> >
>> org.apache.wicket.core.request.handler.PageProvider$Provision.resolve(PageProvider.java:401)
>> > at
>> >
>> org.apache.wicket.core.request.handler.PageProvider.getProvision(PageProvider.java:162)
>> > at
>> >
>> org.apache.wicket.core.request.handler.PageProvider.wasExpired(PageProvider.java:234)
>> > at
>> >
>> org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.checkExpiration(AbstractBookmarkableMapper.java:312)
>> > at
>> >
>> org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.processListener(AbstractBookmarkableMapper.java:305)
>> > at
>> >
>> org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.mapRequest(AbstractBookmarkableMapper.java:346)
>> > at
>> >
>> org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(CompoundRequestMapper.java:147)
>> > at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(RequestCycle.java:195)
>> > at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:245)
>> > at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277)
>> > at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208)
>> > at
>> >
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:307)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1592)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1554)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:807)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:442)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:469)
>> > at
>> >
>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
>> > at
>> >
>> org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:719)
>> > at
>> >
>> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1220)
>> > at
>> org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:859)
>> > at org.eclipse.jetty.server.Server.handle(Server.java:195)
>> > at
>> >
>> org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:680)
>> > at
>> >
>> org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:411)
>> > at
>> >
>> org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1809)
>> > at org.eclipse.jetty.io
>> .FillInterest.fillable(FillInterest.java:105)
>> > at
>> >
>> org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.onFillable(SslConnection.java:614)
>> > at
>> >
>> org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:415)
>> > at
>> >
>> org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:156)
>> > at org.eclipse.jetty.io
>> .FillInterest.fillable(FillInterest.java:105)
>> > at
>> > org.eclipse.jetty.io
>> .SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
>> > at
>> >
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:312)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
>> > at java.base/java.lang.Thread.run(Thread.java:840)
>> >
>> > Caused by:
>> > org.apache.wicket.page.PageLockedException: This thread qtp5287243-65
>> > holds the lock to page 0
>> > at sun.nio.ch.WEPoll.wait(Native Method)
>> > at
>> sun.nio.ch.WEPollSelectorImpl.doSelect(WEPollSelectorImpl.java:111)
>> > at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
>> > at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
>> > at
>> > org.eclipse.jetty.io
>> .ManagedSelector.nioSelect(ManagedSelector.java:183)
>> > at
>> > org.eclipse.jetty.io.ManagedSelector.select(ManagedSelector.java:190)
>> > at
>> > org.eclipse.jetty.io
>> .ManagedSelector$SelectorProducer.select(ManagedSelector.java:615)
>> > at
>> > org.eclipse.jetty.io
>> .ManagedSelector$SelectorProducer.produce(ManagedSelector.java:549)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produceTask(AdaptiveExecutionStrategy.java:509)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:251)
>> > at
>> >
>> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
>> > at
>> >
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:312)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
>> > at
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
>> > at java.lang.Thread.run(Thread.java:840)
>> >
>> > Browser
>> > [image: grafik.png]
>> >
>> >
>> >
>>
>