Компоненты области сеанса синхронизируются по умолчанию. Это означает, что Seam заботится о том, чтобы только один запрос за раз мог получить доступ к такому компоненту. Все остальные запросы должны ждать до завершения первого. Чтобы предотвратить голодание, ожидающие запросы имеют тайм-аут (см. org.jboss.seam.core.SynchronizationInterceptor
для соответствующей реализации). Когда ожидающий запрос не получает доступ к компоненту до истечения времени ожидания, SynchronizationInterceptor
выдает org.jboss.seam.core.LockTimeoutException
.
При условии, что запросам A и B нужен ваш importUser
компонент, и A является первым. Если A занимает много времени, чтобы закончить, B закончится в LockTimeoutException
. Чтобы выяснить причину вашей проблемы, попробуйте выяснить, как запрос на importUser
может занять больше времени, чем определенное время ожидания.