You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2013/01/07 14:44:13 UTC
[jira] [Resolved] (WICKET-4944) FileUploadField was rendered
already problem inside a Form inside a Panel
[ https://issues.apache.org/jira/browse/WICKET-4944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Grigorov resolved WICKET-4944.
-------------------------------------
Resolution: Cannot Reproduce
Please provide a minimal quickstart to reproduce so we can debug it.
> FileUploadField was rendered already problem inside a Form inside a Panel
> -------------------------------------------------------------------------
>
> Key: WICKET-4944
> URL: https://issues.apache.org/jira/browse/WICKET-4944
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.5.8
> Environment: Karaf
> Karaf version 2.3.0
> Karaf home /home/rio/git/bippo-commerce5/karaf
> Karaf base /home/rio/git/bippo-commerce5/karaf
> OSGi Framework org.apache.felix.framework - 4.0.3
> JVM
> Java Virtual Machine OpenJDK 64-Bit Server VM version 23.2-b09
> Version 1.7.0_09
> Vendor Oracle Corporation
> Uptime 34 minutes
> Total compile time 42.303 seconds
> Threads
> Live threads 149
> Daemon threads 101
> Peak 185
> Total started 1214
> Memory
> Current heap size 165,141 kbytes
> Maximum heap size 466,048 kbytes
> Committed heap size 301,504 kbytes
> Pending objects 0
> Garbage collector Name = 'PS Scavenge', Collections = 313, Time = 2.254 seconds
> Garbage collector Name = 'PS MarkSweep', Collections = 3, Time = 0.932 seconds
> Classes
> Current classes loaded 16,739
> Total classes loaded 23,114
> Total classes unloaded 6,375
> Operating system
> Name Linux version 3.5.0-21-generic
> Architecture amd64
> Processors 8
> Reporter: Hendy Irawan
>
> I'm not exactly sure why this happens, but it happens 100% of the time on our config.
> Java: (from Page to Panel to Form that contains the FileUploadField)
> {code}
> @PaxWicketMountPoint(mountPoint = "shop_pub/${id}/edit")
> public class ShopViewEditPage extends BippoPubPage {
> private static final Logger log = LoggerFactory
> .getLogger(ShopViewEditPage.class);
> @Inject @Filter("(repositoryMode=normal)")
> private ShopRepository shopRepo;
> @Inject @Namespace("shop")
> private ImageRepository shopImageRepo;
> public ShopViewEditPage(PageParameters params) {
> super(false);
> final String shopId = params.get("id").toOptionalString();
> final IModel<Shop> shopModel = new AsyncModel<Shop>() {
> @Override
> protected Shop load() throws Exception {
> final Shop shop = shopRepo.findOne(shopId);
> if (shop == null) {
> throw new RestartResponseException(new PageProvider(PageNotFound.class),
> RedirectPolicy.NEVER_REDIRECT);
> }
> return shop;
> }
> };
> add(new EditShopProfilePanel("bippoEditShopProfile", shopModel));
> add(new EditShopImagePanel("bippoEditShopImageProfile", shopModel));
> add(new EditShopBannerPanel("editShopBanner", shopModel));
> }
> }
> {code}
> {code}
> public class EditShopImagePanel extends Panel {
> private static final Logger log = LoggerFactory
> .getLogger(EditShopImagePanel.class);
> @Inject @Namespace("shop")
> private ImageRepository shopImageRepo;
> @Inject @Filter("(repositoryMode=normal)")
> private ShopRepository shopRepo;
> public EditShopImagePanel(@Nonnull String id,
> @Nonnull final IModel<Shop> model) {
> super(id, model);
> setOutputMarkupId(true);
>
> // form upload
> final FileUploadForm formUpload = new FileUploadForm("simpleUploadForm", model);
> ...
> {code}
> {code}
> private class FileUploadForm extends Form<Shop> {
> public FileUploadField fileUploadField;
> public FileUploadForm(String id, IModel<Shop> model) {
> super(id, model);
> setMultiPart(true);
> setMaxSize(Bytes.kilobytes(10));
> add(fileUploadField = new FileUploadField("shopImageUpload"));
> }
> ...
> {code}
> Markup:
> {code}
> <wicket:panel>
> <form wicket:id="simpleUploadForm" id="simpleUploadForm">
> <fieldset>
> <legend>Photo Profile</legend>
> <input type="file" name="shopImageUpload" wicket:id="shopImageUpload" />
> <button wicket:id="ajaxUpload" value="Unggah" class="btn btn-small">
> <i class="icon-arrow-up"></i> Unggah
> </button>
> <div wicket:id="imageContainer" class="imageContainer"
> id="imageContainer">
> <img wicket:id="shownImage" class="img-polaroid">
> <button wicket:id="btnDelete" class="btn btn-small btn-danger">Delete</button>
> </div>
> <input type="file" name="shopImageUpload" wicket:id="shopImageUpload">
> <button wicket:id="ajaxUpload" value="Unggah" class="btn btn-small">
> <i class="icon-circle-arrow-up"></i> Unggah
> </button>
> </fieldset>
> </form>
> </wicket:panel>
> {code}
> Trace:
> {code}
> Root cause:
> The component [FileUploadField [Component id = shopImageUpload]] was rendered already. You can render it only once during a render phase. Class relative path: org.apache.wicket.markup.html.form.upload.FileUploadField:bippoEditShopImageProfile:simpleUploadForm:shopImageUpload
> MarkupStream: [unknown]
> at org.apache.wicket.Page.componentRendered(Page.java:246)
> at org.apache.wicket.Component.rendered(Component.java:2620)
> at org.apache.wicket.Component.internalRender(Component.java:2393)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.form.Form.onComponentTagBody(Form.java:1661)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:693)
> at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderAssociatedMarkup(AssociatedMarkupSourcingStrategy.java:76)
> at org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy.onComponentTagBody(PanelMarkupSourcingStrategy.java:112)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1571)
> at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525)
> at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:72)
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2559)
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1534)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1432)
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1596)
> at org.apache.wicket.Page.onRender(Page.java:907)
> at org.apache.wicket.markup.html.WebPage.onRender(WebPage.java:140)
> at org.apache.wicket.Component.internalRender(Component.java:2389)
> at org.apache.wicket.Component.render(Component.java:2317)
> at org.apache.wicket.Page.renderPage(Page.java:1035)
> at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:115)
> at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237)
> at org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167)
> at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:784)
> at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
> at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255)
> at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212)
> at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283)
> at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188)
> at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.ops4j.pax.wicket.internal.FilterDelegator$Chain.doFilter(FilterDelegator.java:79)
> at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> at org.ops4j.pax.wicket.internal.FilterDelegator$Chain.doFilter(FilterDelegator.java:77)
> at org.ops4j.pax.wicket.internal.FilterDelegator.doFilter(FilterDelegator.java:61)
> at org.ops4j.pax.wicket.internal.ServletProxy$ServletInvocationHandler.invoke(ServletProxy.java:72)
> at $Proxy17.service(Unknown Source)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.ops4j.pax.web.service.internal.HttpServiceStarted$2.invoke(HttpServiceStarted.java:210)
> at org.ops4j.pax.web.service.internal.$Proxy0.service(Unknown Source)
> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:447)
> at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)
> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
> at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
> at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
> at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:74)
> at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:363)
> at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
> at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
> at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
> at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
> at org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
> at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:722)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira