Hi Thorsten,

I wanted to ask for that stacktrace anyway: )

Seems WebPageRenderer thinks it has to store the rendering result and redirect to it. That's definitely nothing something you want to have when using ComponentRenderer.

There's probably something in your setup that triggers this redirect (e.g. page url changes after render). Maybe we could improve ComponentRender so it never redirects.

Best regards
Sven


On 01.04.20 19:53, Thorsten Schöning wrote:
Guten Tag Sven Meier,
am Mittwoch, 1. April 2020 um 17:31 schrieben Sie:

Without a quickstart it's hard to guess whether this is an error
actually or you did something wrong.
Things are easy in my opinion: There's no session-ID in my use case at
all, the code itself is tolerant and many other places are as well,
like BufferedResponseMapper:

         protected String getSessionId()
         {
                 String sessionId = null;

                 if (Application.exists() && RequestCycle.get() != null)
                 {
[...]
                         Session session = 
sessionStore.lookup(requestCycle.getRequest());
                         if (session != null)
                         {
                                 sessionId = session.getId();
                         }
                 }

                 return sessionId;
         }
         protected boolean hasBufferedResponse(Url url)
         {
                 String sessionId = getSessionId();
                 boolean hasResponse = false;
                 if (Strings.isEmpty(sessionId) == false)
                 {
                         hasResponse = 
WebApplication.get().hasBufferedResponse(sessionId, url);
                 }
                  return hasResponse;
         }
I tried to reproduce this using a quickstart but failed, it's too much
work to get all my components/customizations into place to see which
triggers the code path. The original quickstart doesn't seem to
trigger it.

So my approach is different, I'm simply overriding the method in
question and make it more tolerant myself. This allows me to get a
stacktrace of the code path triggered as well:

java.lang.UnsupportedOperationException: foobar
         at 
de.am_soft.sm_mtg.view.report.VwrRenderApp.storeBufferedResponse(VwrRenderApp.java:112)
         at 
org.apache.wicket.request.handler.render.WebPageRenderer.storeBufferedResponse(WebPageRenderer.java:87)
         at 
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:278)
         at 
org.apache.wicket.util.tester.BaseWicketTester$LastPageRecordingPageRendererProvider$1.respond(BaseWicketTester.java:2824)
         at 
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
         at 
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
         at 
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
         at 
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
         at 
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
         at 
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
         at 
org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:713)
         at 
org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:652)
         at 
org.apache.wicket.util.tester.BaseWicketTester.startPage(BaseWicketTester.java:879)
         at 
org.apache.wicket.util.tester.BaseWicketTester.startPage(BaseWicketTester.java:896)
         at 
de.am_soft.sm_mtg.view.report.html.pages.meter_cnt.some_month.VwrPgMcsmSummaryTest.wicket(VwrPgMcsmSummaryTest.java:63)
                 try (VwrCtxThreadScoped scopedCtx = new 
VwrCtxThreadScoped(ctx0))
                 {
                         Supplier<VwrHtmlPage>   page    = () -> new 
VwrPgMcsmSummary();
                         VwrRenderApp                    app             = new 
VwrRenderApp(page);
                         WicketTester                    tester  = new 
WicketTester(app);

                         tester.startPage(page.get());
                 }
Mit freundlichen Grüßen,

Thorsten Schöning


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

Reply via email to