Servoy 5.1.4

jbader:
Yes…little different.

First thing to keep in mind is that I am not trying to show the second form in the dialog.

I do this:

application.showFormInDialog(myForm1);

Then on that form I have a button that runs an inherited method (from a “controller_parent” that has some default functionality on it, and that is abstract and has no base form) that does something similar to:

forms.myForm2.foundset.loadRecords([pk])

forms.myForm2.controller.show()

This used to work and would close the FID, then show myForm 2 in the main window.

nope if it did work that way, then that would be a bug.

It should work like i described above. If you are in a modal window (or none modal window) and there you do conroller.show() on a form then that form is shown in the current window…
Thats how it works for a long time.

i changed my line of code to show the initial dialog to application.showFormInDialog(forms.dialog1);

and the behavior is still the same an correct.

(the smart client works exactly the same)

It should work like i described above. If you are in a modal window (or none modal window) and there you do conroller.show() on a form then that form is shown in the current window…

Right now what is happening (in 5.1.4) is that when controller.show is called from the form that is in a dilaog, the FID goes away (w/o me ever calling close) and the main window becomes stale. If I hit refresh in the browser then the form that I showed using controller.show magically appears in the main window.

The code that is calling controller.show does not exist on the form that is shown in the dialog though, that code is inherited from another form that is now being shown in a dialog. So are we sure there was a bug fix here or are we looking at a regression b/c this code has worked untouched for quite some time (5.1.x - 5.1.4).

We are experiencing the same type of problem with the FID in the webclient. We have a login screen that prompts the user for user name and password. After the credentials are validated, the FID closes and the underlying splash screen remains open, rather than opening the main application form. We are using application.showForm() to open the main application form. We have not changed any of this code, so I know it is a reasult of this release. This was working in the 5.1.3 version and was broken in 5.1.4.

please create a case with what you are exactly doing.
If i rebuild what you describe here it just works for me.
So i guess i dont do exactly what you do in scripting.

Where a method that you all come from (inheritance doesnt matter at all, its the same form) doesnt matter
Its only where the code is executed on. Is it executed in the context of Window X then it will do its stuff in window X

Johan,

I can build a sample solution I suppose, but if I can’t duplicate the problem, I’m not sure what that means for this issue (which is real). Something is different. I just loaded the exact same code into both a 5.1.2 install and a 5.1.3 install and it works. When I use 5.1.4, it does not. Were there changes to the controller or to form showing etc. in 5.1.4? I don’t see anything in the release notes. Is there a more complete list of changes somewhere?

Thanks a lot.

no there is no change in the controller show.
But there could be some specific related to the modal dialog in the web.

For example you can always test what the smart client does with that same solution.

For example you can always test what the smart client does with that same solution.

I tested the same solution in 5.1.4 in smart client and everything works exactly as it always did. Meaning the issue is webclient specific and fid specific. This is a new issue in 5.1.4, and I don’t think that 5.1.4 fixed a bug, I think 5.1.4 introduced a regression.

jbader:
I tested the same solution in 5.1.4 in smart client and everything works exactly as it always did. Meaning the issue is webclient specific and fid specific. This is a new issue in 5.1.4, and I don’t think that 5.1.4 fixed a bug, I think 5.1.4 introduced a regression.

thats a weird conclusion, yes it could be that some other bug appeared in the FID for the web, but how did you come to the conclusion that there wasnt a bug fixed?

But still i cant reproduce it with the information i get from this thread, so please make a sample case that shows the current behavior.

Johan,

This is definitely a regression. The same exact code has worked since Servoy version 3.18.
I recently switched from Servoy 4.1.5 to Servoy 5.1.4 and now I am getting an “Internal error -return to home page” message.
In my solution, I have two forms, mainForm and mainHidden. The solution’s firstForm is mainForm.
Simply executing the statement below is enoough to trigger the error.

forms['mainHidden'].controller.show();

This code has worked for Smart Clients and Web Clients alike since Servoy 3.1.8 until I switched from Servoy 4.1.5 to Servoy 5.1.4.
It continues to work for the Smart Client in Servoy 5.1.4. It does not work when using the Web client in Servoy 5.1.4.
I turned on logging for the server and get the following. Note the error - postback messages occur as soon as the login form is displayed.
The solution’s “Must authenticate” checkbox is checked.

org.apache.wicket.WicketRuntimeException: Error attaching this container for rendering: [MarkupContainer [Component id = dialog]] 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1739) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Page.onBeforeRender(Page.java:1521) 
     at com.servoy.j2db.server.headlessclient.MainPage.onBeforeRender(MainPage.java:168) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.Component.prepareForRender(Component.java:2225) 
     at org.apache.wicket.Component.prepareForRender(Component.java:2262) 
     at org.apache.wicket.Page.renderPage(Page.java:893) 
     at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63) 
     at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105) 
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1258) 
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) 
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) 
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479) 
     at com.servoy.j2db.server.servlets.Zk.doGet(Zk.java:4) 
     at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
     at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.NullPointerException 
     at com.servoy.j2db.server.headlessclient.dataui.Zte.<init>(Zte.java:21) 
     at com.servoy.j2db.server.headlessclient.Zvc.<init>(Zvc.java:2) 
     at com.servoy.j2db.server.headlessclient.Zld.populateItem(Zld.java:14) 
     at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:576) 
     at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:131) 
     at com.servoy.j2db.server.headlessclient.Zld.onBeforeRender(Zld.java:12) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     ... 44 more  
2010-09-30 17:52 http-8080-2 ERROR org.apache.wicket.RequestCycle Error attaching this container for rendering: [MarkupContainer [Component id = dialog]] 
org.apache.wicket.WicketRuntimeException: Error attaching this container for rendering: [MarkupContainer [Component id = dialog]] 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1739) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     at org.apache.wicket.Component.onBeforeRender(Component.java:3855) 
     at org.apache.wicket.Page.onBeforeRender(Page.java:1521) 
     at com.servoy.j2db.server.headlessclient.MainPage.onBeforeRender(MainPage.java:168) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.Component.prepareForRender(Component.java:2225) 
     at org.apache.wicket.Component.prepareForRender(Component.java:2262) 
     at org.apache.wicket.Page.renderPage(Page.java:893) 
     at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63) 
     at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105) 
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1258) 
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) 
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) 
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479) 
     at com.servoy.j2db.server.servlets.Zk.doGet(Zk.java:4) 
     at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
     at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.NullPointerException 
     at com.servoy.j2db.server.headlessclient.dataui.Zte.<init>(Zte.java:21) 
     at com.servoy.j2db.server.headlessclient.Zvc.<init>(Zvc.java:2) 
     at com.servoy.j2db.server.headlessclient.Zld.populateItem(Zld.java:14) 
     at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:576) 
     at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:131) 
     at com.servoy.j2db.server.headlessclient.Zld.onBeforeRender(Zld.java:12) 
     at org.apache.wicket.Component.internalBeforeRender(Component.java:1061) 
     at org.apache.wicket.Component.beforeRender(Component.java:1095) 
     at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1727) 
     ... 44 more  
2010-09-30 17:50 http-8080-4 INFO com.ej JAVA version is 1.6.0_21 
2010-09-30 17:50 http-8080-4 INFO com.servoy.j2db.util.Debug Log plugin initialized 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:browserHeight 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:browserWidth 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:utcDSTOffset 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:utcOffset 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:screenColorDepth 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:screenHeight 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:screenWidth 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorUserAgent 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorPlatform 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorLanguage 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorJavaEnabled 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorCookieEnabled 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorAppCodeName 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorAppVersion 
2010-09-30 17:50 http-8080-2 ERROR org.apache.wicket.markup.html.form.Form 1: postback:navigatorAppName

To ensure that the error is not caused by a tab overlapping the form, an improperly formated data field, etc., the mainHidden form is blank.
I am on a Windows XP SP2 system with JAVA 1.6.0_21-b07 and I have tested with IE7 and FF 3.5.9.
I am going to test in 5.2.1 but 5.2.1 is not an option as we are so close to the production release of our major software.
This issue came up while we we testing the Web Client using a path that does not come up that frequently.

Help! I need a solution that does not involve a major software rewrite or involve a major schedule delay because we are forced to use 5.2.1.
Thank you in advance for you kind assistance.

I forgot to mention that this “Internal error - return to home page” error occurs when running the 5.1.4 Web Client while in the developer or when using the server only as in a production environment.

The error occurs whether using:

forms['mainHidden'].controller.show()'

or

application.showForm('mainHidden');

Again thank you in advance for your kind assistance.

that null pointer problem is fixed in 5.2 but i am currently looking why that happens, because if i look at the code it shouldn’t really be null there (and the extra null pointer check in 5.2 shouldn’t be needed)

So for now the only thing i see is move to 5.2.2, again 5.2.2 would be 5.1.7 anyway if we didnt go open source. If you disable enhanced security 5.2 would just be 5.1.5

I have isolated the problem to the use of different navigators when switching between forms.
The mainForm uses the control_form navigator while the mainHidden form uses the control_alt navigator.
When I switch between these forms, I present a different set of control options to the user.

If the navigator on the mainHidden form is set to the same navigator as used on the mainForm form, the code will work in the 5.1.4 Web Client.
As shown in this test, the only difference between the navigators is their names.
This is clearly a regression bug since the same code worked in the Web Client when using Servoy 3.1.x, 4.1.x and in 5.2.1.
It does not work in the Web Client when using Servoy 5.1.4.

I am faced with delaying a major software release in order to move to 5.2.1 and start testing all over again or to rewrite the code associated with the two navigators to combine them into one navigator and show a specific set of control options depending on which form (mainForm or mainHidden) is visible.
Either way I am faced with a significant delay in releasing the software unless the wizards at Servoy and on the forum have a solution.

I enclosed a simple solution illustrating the bad behavior in the 5.1.4 Web Client. All versions of the Smart Client are not affected. There is no browser dependency either as it fails in IE7, IE8, FF 3.5.9 and FF 3.6.10.

Thank you in advance for your assistance.

Testing.servoy (4.53 KB)

please file this as a case at http://www.servoy.com/s

Jan,

I have filed case #323986.

Best regards,
Ron