Hello Forum.
I've googled different request and responses on this error, but nothing occur on my problem.
I now very well, when it happens. The reason is, in the controller is an method which makes, in a very few cause, very long time. Mostly it takes only a few millis. The Sychronisation timeout is set to 30000 millis. What happens:
From the browser comes an second call, while the first one is running. This second call ends up in the @Synchronisation timeout. Now, anytime, the first call ended.
What happens in the frontend:
An Error Occurred:
javax.el.ELException: /invoice/invoice.xhtml @68,81 value="#{invoiceCtrl.invoiceDataModel()}": java.lang.IllegalStateException: could not acquire lock on @Synchronized component: invoiceCtrl
+- Stack Trace
+- Scoped Variables
It is useless to configure pages.xml with:
<exception class="java.lang.IllegalStateException">
<redirect view-id="....">
<message>....</message>
</redirect>
</exception>
Don't know why, maybe i should catch javax.el.ELException, but this error occur may different places, so it is not useful to catch it by an global directive.
I try in components.xml
<core:manager conversation-timeout="3600000" concurrent-request-timeout="15000" conversation-id-parameter="cid" />
hoping, that the second call will be skipped before the @Synchronization fails, but this takes also no effect, or even not what I'm waiting for.
Does anyone knows what to do. I want, that the second call takes no effect, destroy the first one result.
TIA
Andreas Riedel