Bug #2319
openprogressive bootstrap error: unusable application state following enableAjax ()
0%
Description
I have made a small widgetset application that requires progressive bootstrap and appears to function with progressive bootstrap, but when I use it on a larger form (that doesn't require it, just out of curiosity) the user experience turns into a mess.
The larger application requires a table to filter in response to check boxes selected by the user. The rendering of the table breaks down, the check boxes are unselected and the browser appears to communicate with the server frequently.
All this happens in a perfectly unsuspicious JWt application and after that JWt application has executed enableAjax () and confirmed that Ajax and Javascript are available. Why is there no hasWebSockets () method in analogy to hasAjax (), by the way?
Updated by Bernhard Fastenrath about 11 years ago
The configuration is a default configuration besides setProgressiveBootstrap (true). There is no wt_config.xml involved.
Updated by Bernhard Fastenrath about 11 years ago
I had failed to notice a java.lang.NullPointerException at eu.webtoolkit.jwt.WTableView.setColumnWidth(WTableView.java:418).
The exception does not occur without progressive bootstrap, however.
The table also adds [First] [Previous] [Next] [Last] buttons below the table content,
which probably means the widget still believes it cannot draw a scrollbar.
Updated by Koen Deforche about 11 years ago
- Status changed from New to Feedback
- Assignee set to Koen Deforche
Hey,
By nature, a 'widgetset' application does not use the 'progressive bootstrap' configuration setting, since it's loaded as a JavaScript file and must assume an Ajax-capable browser (otherwise it cannot render the UI using JavaScript).
A WTableView/WTreeView does not progress entirely with enableAjax() since we believe it will be ugly to remove the paging buttons as the session progresses.
I am however interested in the null pointer exception --- do you have a complete stacktrace?
Regards,
koen
Updated by Bernhard Fastenrath about 11 years ago
Here is the stacktrace:
[QueuedThreadPool] running job: [class org.eclipse.jetty.server.AsyncContinuation$1]: org.eclipse.jetty.server.AsyncContinuation$1@25a75631
16934 [qtp1177019096-13] ERROR eu.webtoolkit.jwt.WebSession - error during event handling: java.lang.NullPointerException
16934 [qtp1177019096-13] ERROR eu.webtoolkit.jwt.WebSession - fatal error: java.lang.NullPointerException
java.lang.NullPointerException
at eu.webtoolkit.jwt.WTableView.setColumnWidth(WTableView.java:418)
at org.nongnu.frs.web.servlet.jwt.HotelReservationContainerWidget$HotelTableForm.updateVisibleRows(HotelReservationContainerWidget.java:749)
at org.nongnu.frs.web.servlet.jwt.HotelReservationContainerWidget$HotelTableForm$1CheckBoxListener2.trigger(HotelReservationContainerWidget.java:518)
at eu.webtoolkit.jwt.Signal.trigger(Signal.java:68)
at eu.webtoolkit.jwt.EventSignal.processDynamic(EventSignal.java:56)
at eu.webtoolkit.jwt.WebSession.processSignal(WebSession.java:1809)
at eu.webtoolkit.jwt.WebSession.notifySignal(WebSession.java:1916)
at eu.webtoolkit.jwt.WebSession.notify(WebSession.java:469)
at eu.webtoolkit.jwt.WApplication.notify(WApplication.java:2790)
at eu.webtoolkit.jwt.WebSession.handleRequest(WebSession.java:1536)
at eu.webtoolkit.jwt.WtServlet.doHandleRequest(WtServlet.java:351)
at eu.webtoolkit.jwt.ServletApi.handleRequest(ServletApi.java:27)
at eu.webtoolkit.jwt.ServletApi3$1.run(ServletApi3.java:94)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1121)
at org.eclipse.jetty.server.AsyncContinuation$1.run(AsyncContinuation.java:875)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606)
at org.eclipse.jetty.util.thread.QueuedThreadPool$1.run(QueuedThreadPool.java:538)
at java.lang.Thread.run(Thread.java:724)
16935 [qtp1177019096-13] INFO eu.webtoolkit.jwt.WtServlet - Session exiting: wy24fdtj6mcuu3ow83x1qwpk (#sessions = 0)
Updated by Bernhard Fastenrath about 11 years ago
http://redmine.webtoolkit.eu/boards/2/topics/3738?r=3822#message-3822 :
\" When deploying a widget set application from within a wt application you need to use progressive bootstrap. Perhaps we need to clarify that in the read me file. \"
You are contradicting yourself here. Please clarify.
Updated by Wim Dumon about 11 years ago
If Wt application App1 is displayed in Wt application App2 using widget set mode, App2 must use progressive bootstrap. App1 is the widgetset application, app2 is not a widgetset application.
Wim.