Having a simple bean
@Model
public class Controller {
@Inject
Conversation conversation;
public void begin() {
conversation.begin();
}
public void end() {
conversation.end();
}
invoked from a JSF view,
trying to end the same conversation from two parallel request results in
org.jboss.weld.context.BusyConversationException:
WELD-000322
Conversation lock timed out: 1
it seems that the lock was not released, thus the second thread keeps waiting for the conversation timeout.
The expected result (unless the conversation ending really took so long) would be for the second thread to end in org.jboss.weld.context.NonexistentConversationException:
WELD-000321
: No conversation found to restore for id 1
Other notes:
increasing the CONCURRENT_ACCESS_TIMEOUT makes the issue more apparent.
|