Bug #2319


progressive bootstrap error: unusable application state following enableAjax ()

Added by Bernhard Fastenrath over 10 years ago. Updated over 10 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:


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?

Actions #1

Updated by Bernhard Fastenrath over 10 years ago

The configuration is a default configuration besides setProgressiveBootstrap (true). There is no wt_config.xml involved.

Actions #2

Updated by Bernhard Fastenrath over 10 years ago

I had failed to notice a java.lang.NullPointerException at eu.webtoolkit.jwt.WTableView.setColumnWidth(

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.

Actions #3

Updated by Koen Deforche over 10 years ago

  • Status changed from New to Feedback
  • Assignee set to Koen Deforche


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?



Actions #4

Updated by Bernhard Fastenrath over 10 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


at eu.webtoolkit.jwt.WTableView.setColumnWidth(

at org.nongnu.frs.web.servlet.jwt.HotelReservationContainerWidget$HotelTableForm.updateVisibleRows(

at org.nongnu.frs.web.servlet.jwt.HotelReservationContainerWidget$HotelTableForm$1CheckBoxListener2.trigger(

at eu.webtoolkit.jwt.Signal.trigger(

at eu.webtoolkit.jwt.EventSignal.processDynamic(

at eu.webtoolkit.jwt.WebSession.processSignal(

at eu.webtoolkit.jwt.WebSession.notifySignal(

at eu.webtoolkit.jwt.WebSession.notify(

at eu.webtoolkit.jwt.WApplication.notify(

at eu.webtoolkit.jwt.WebSession.handleRequest(

at eu.webtoolkit.jwt.WtServlet.doHandleRequest(

at eu.webtoolkit.jwt.ServletApi.handleRequest(

at eu.webtoolkit.jwt.ServletApi3$

at org.eclipse.jetty.server.handler.ContextHandler.handle(

at org.eclipse.jetty.server.AsyncContinuation$

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(

at org.eclipse.jetty.util.thread.QueuedThreadPool$


16935 [qtp1177019096-13] INFO eu.webtoolkit.jwt.WtServlet - Session exiting: wy24fdtj6mcuu3ow83x1qwpk (#sessions = 0)

Actions #5

Updated by Bernhard Fastenrath over 10 years ago :

\" 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.

Actions #6

Updated by Wim Dumon over 10 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.



Also available in: Atom PDF