Hendy Irawan created WICKET-4944:
------------------------------------

             Summary: 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