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