The progress bar example on the richfaces demo site is only a very simple graphical demonstration of the component. In a real life application there will often be an asynchronous method behind it. The thread Asynchronous Tasks and Richfaces Progress Bar shows a more realistic way to use the component. Works great, until you activate the Quartz Dispatcher.
Just by adding the quartz module to application.xml and
<async:quartz-dispatcher/>
to components.xml, the progress bar will stop working.
The way the asynchronous process was initiated, was by passing the bean itself as a parameter to the call.
@Name("asyncExample") @Scope(ScopeType.CONVERSATION) public class AsyncExample { ... @Asynchronous public String startProcess(AsyncExample asyncExample) throws InterruptedException { ... } ... }
I have the impression that the standard dispatcher will keep the reference to the original bean, while quartz will make a copy of it. The progress bar on the page gets it's value from the original bean, so in the quartz case, it will never get updated. Is this a bug or is there another way to use the progress bar with quartz?