Session scoped components are synchronized by default. That means, Seam takes care that only one request at a time may access such a component. All other requests have to wait until the first is finished. To prevent starvation, the waiting requests have a timeout (see org.jboss.seam.core.SynchronizationInterceptor
for the corresponding implementation). When the waiting request does not get access to the component until the timeout is reached, the SynchronizationInterceptor
throws a org.jboss.seam.core.LockTimeoutException
.
Assuming to requests, A and B, need your importUser
component and A is first. If A takes a long time to finish, B will end in the LockTimeoutException
. To find the cause of your issue, try to find out how a request to importUser
may take longer than the defined timeout.