Event listeners must not needlessly delay program
execution. Use of Thread.sleep(400) in
handleProgressEvent is completely wrong as it will
block caller (that might be communicating with
remote client so any delay can be source of troubles).
Also if I use apparent workaround and fire event
asynchronously from newly created Thread or just
by calling RequestProcessor.getDefault.post() it
will not achieve its purpose at all.
Remove sleep(400) in handleProgressEvent.