The FullAjaxExceptionHandler
replaces basically the entire HTML document tree with the content of the error page and hereby the <p:ajaxStatus>
"get lost" and its oncomplete
is never invoked. You basically need to invoke hideStatusDialog()
from inside the HTML source of the error page as well. Perhaps something like this:
<h:outputScript target="body">hideStatusDialog();</h:outputScript>
Better yet, use $(document).ajaxStart()
, ajaxComplete()
and ajaxError()
in a global JS file instead of the whole <p:ajaxStatus>
.