You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Andrea Del Bene (JIRA)" <ji...@apache.org> on 2015/05/07 18:45:00 UTC

[jira] [Comment Edited] (WICKET-5898) StackOverflowError after form submit with a validation error

    [ https://issues.apache.org/jira/browse/WICKET-5898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14532963#comment-14532963 ] 

Andrea Del Bene edited comment on WICKET-5898 at 5/7/15 4:44 PM:
-----------------------------------------------------------------

This last test case fails also with Wicket 6.x. See quickstart. I guess in your application you have transparent containers automatically added by Wicket (like <img src='foo/bar/pic.png'>) and not explicitly added via code as it is in the last test case.
If this is the case we can avoid to search in transparent components if the searched component is an autocomponent (i.e. isAuto returns true).
I will do more tests to explore this possible solution.


was (Author: bitstorm):
This last test case fails also with Wicket 6.x. See quickstart. I guess in your application you have transparent container automatically added by Wicket (like <img src='foo/bar/pic.png'>) and not explicitly added via code as it is in the last test case.
If this is the case we can avoid to search in transparent components if the searched component is an autocomponent (i.e. isAuto returns true).
I will do more tests to explore this possible solution.

> StackOverflowError after form submit with a validation error
> ------------------------------------------------------------
>
>                 Key: WICKET-5898
>                 URL: https://issues.apache.org/jira/browse/WICKET-5898
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.0.0-M5
>            Reporter: Vojtěch Krása
>            Assignee: Andrea Del Bene
>             Fix For: 7.0.0-M6
>
>         Attachments: NestedTransparentContainer.zip
>
>
> I was not able to find a cause or make a small quickstart, but it has something to do with a form validation, my workaround was to setDefaultFormProcessing(false) or not use required TextFields.
> It can be reproduced on https://github.com/krasa/DevSupportApp/tree/stackOverflow 
> 1) run StartVojtitkoDummy
> 2) go to http://localhost:8765/wicket/bookmarkable/krasa.release.frontend.TokenizationPage
> 3) click on "Generate Release json" button 
> - instead of SOE, it should give a validation error, probably even on fields which I would not want to validate, but that's just because I've made the page badly... 
>  
> {code}
> java.lang.StackOverflowError: null
> ...
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:81)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:74)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
> 	at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:862)
> 	at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
> 	at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:99)
> 	at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:453)
> 	at org.apache.wicket.Component.getMarkup(Component.java:755)
> 	at org.apache.wicket.Component.internalRender(Component.java:2344)
> 	at org.apache.wicket.Component.render(Component.java:2307)
> 	at org.apache.wicket.ajax.XmlAjaxResponse.writeComponent(XmlAjaxResponse.java:128)
> 	at org.apache.wicket.ajax.AbstractAjaxResponse.writeComponents(AbstractAjaxResponse.java:218)
> 	at org.apache.wicket.ajax.AbstractAjaxResponse.writeTo(AbstractAjaxResponse.java:150)
> 	at org.apache.wicket.ajax.AjaxRequestHandler.respond(AjaxRequestHandler.java:359)
> 	at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:865)
> 	at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> 	at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:97)
> 	at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
> 	at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
> 	at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
> 	at org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:59)
> 	at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
> 	at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:497)
> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
> 	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:620)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.ru
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)