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

Martin Grigorov commented on WICKET-4944:
-----------------------------------------

Please create a quickstart application that reproduces the problem.
                
> 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

Reply via email to