Cannot modify component hierarchy after render phase has started

2017-07-01 Thread Maxim Solodovnik
Hello,

I'm facing weird "Cannot modify component hierarchy after render phase has
started" exception on simultaneous page access using 2 different browsers
everything works in case there is only one browser, or page being accessed
not "simultaneously"

We are using "single page" application, with async updates via
AjaxBehaviours and WebSockets

Maybe you can propose how to debug this?
Wicket 8.8.8-SNAPSHOT
Tomcat 8.5.12


Here is the stack trace:
org.apache.wicket.WicketRuntimeException: Cannot modify component hierarchy
after render phase has started (page version cant change then anymore)
at org.apache.wicket.Component.checkHierarchyChange(Component.java:3649)
at org.apache.wicket.MarkupContainer.remove(MarkupContainer.java:685)
at
org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:990)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:239)
at
org.apache.openmeetings.web.common.MainPanel.onInitialize(MainPanel.java:151)
at org.apache.wicket.Component.fireInitialize(Component.java:878)
at
org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1037)
at
org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:1014)
at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:239)
at org.apache.openmeetings.web.pages.MainPage.onInitialize(MainPage.java:52)
at org.apache.wicket.Component.fireInitialize(Component.java:878)
at
org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1037)
at org.apache.wicket.Page.isPageStateless(Page.java:459)
at
org.apache.wicket.request.handler.render.WebPageRenderer.isPageStateless(WebPageRenderer.java:287)
at
org.apache.wicket.request.handler.render.WebPageRenderer.shouldRenderPageAndWriteResponse(WebPageRenderer.java:333)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:193)
at
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)
at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
at
org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at
org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:595)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

-- 
WBR
Maxim aka solomax


Re: File Image Upload

2017-07-01 Thread Tobias Soloschenko
Hi, 

there has been a change that the file parts have to be parsed before read:

https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0#MigrationtoWicket7.0-FilePartsmustbeparsedexplicitlybeforetryingtoreadthemWICKET-5839

I don't see this in your code. Could you try this?

kind regards

Tobias

> Am 01.07.2017 um 15:12 schrieb gasper :
> 
> Hello,
> 
> I am trying to upload an image to a particular folder in my Web
> application
> I am using Apache Wicket 6.x
> 
> This is a sample code i am using from MkYong:
> 
> private FileUploadField fileUpload;
>private String UPLOAD_FOLDER = "C:\\";
>//I want to change the UPLOAD_FOLDER from C directory to my folder
> on the webApplication
> 
>public FileUploadPage(final PageParameters parameters) {
> 
>add(new FeedbackPanel("feedback"));
> 
>Form form = new Form("form") {
> @Override
> protected void onSubmit() {
> 
>final FileUpload uploadedFile = fileUpload.getFileUpload();
>if (uploadedFile != null) {
> 
>// write to a new file
>File newFile = new File(UPLOAD_FOLDER
>+ uploadedFile.getClientFileName());
> 
>if (newFile.exists()) {
>newFile.delete();
>}
> 
>try {
>newFile.createNewFile();
>uploadedFile.writeTo(newFile);
> 
>info("saved file: " + uploadedFile.getClientFileName());
>} catch (Exception e) {
>throw new IllegalStateException("Error");
>}
> }
> 
>}
> 
>};
> 
>// Enable multipart mode (need for uploads file)
>form.setMultiPart(true);
> 
>// max upload size, 10k
>form.setMaxSize(Bytes.kilobytes(10));
> 
>form.add(fileUpload = new FileUploadField("fileUpload"));
> 
>add(form);
> 
> --
> View this message in context: 
> http://apache-wicket.1842946.n4.nabble.com/File-Image-Upload-tp4678176.html
> Sent from the Users forum mailing list archive at Nabble.com.
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 


File Image Upload

2017-07-01 Thread gasper
Hello,

I am trying to upload an image to a particular folder in my Web
application
I am using Apache Wicket 6.x

This is a sample code i am using from MkYong:

private FileUploadField fileUpload;
private String UPLOAD_FOLDER = "C:\\";
//I want to change the UPLOAD_FOLDER from C directory to my folder
on the webApplication

public FileUploadPage(final PageParameters parameters) {

add(new FeedbackPanel("feedback"));

Form form = new Form("form") {
 @Override
 protected void onSubmit() {

final FileUpload uploadedFile = 
fileUpload.getFileUpload();
if (uploadedFile != null) {

// write to a new file
File newFile = new File(UPLOAD_FOLDER
+ uploadedFile.getClientFileName());

if (newFile.exists()) {
newFile.delete();
}

try {
newFile.createNewFile();
uploadedFile.writeTo(newFile);

info("saved file: " + 
uploadedFile.getClientFileName());
} catch (Exception e) {
throw new 
IllegalStateException("Error");
}
 }

}

};

// Enable multipart mode (need for uploads file)
form.setMultiPart(true);

// max upload size, 10k
form.setMaxSize(Bytes.kilobytes(10));

form.add(fileUpload = new FileUploadField("fileUpload"));

add(form);

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/File-Image-Upload-tp4678176.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org