I have a page.xml that starts a long running conversation:
<page>
<begin-conversation join="true" />
...
</page>
This has served me well for some time. After upgrading to Seam 1.3.0.Alpha (CVS 02-06-07), Trinidad 1.2 and Ajax4Jsf 1.1.1 when ever I submitted that page's data I would always get the following messages:
The conversation ended, timed out or was processing another request
The conversation ended, timed out or was processing another request
I would not be allowed to continue until I had caused a validation error twice, each submission would remove one of the "conversation ended" error messages (!).
The application always works the first time after the app server is started. After that, I get the problem described above.
I have tried the following alternatives to starting a conversation:
<page action="#{conversation.begin}">
...
</page>
and
<page action="#{conversation.begin(true, false)}">
...
</page>
and
<page action="#{orderQuantityBean.startConversation}">
...
</page>
@Name("orderQuantityBean")
@Stateful
@Scope(ScopeType.EVENT)
public class OrderQuantityBeanHome implements OrderQuantityBean, Serializable {
...
@Begin(join=true)
public String startConversation() {
return null;
}
}
All result in the same messages.
Moving the begin-conversation into a navigation rule resolves my particular problem:
<page>
<navigation>
<rule if-outcome="get-quote" >
<begin-conversation join="true" />
<render view-id="/public/order-quantity.xhtml" />
</rule>
</navigation>
</page>
I am aware that certain situations have been tightened up in the latest Seam and JBoss versions. I am also aware that this is an alpha version. So, was I using begin-conversation wrongly in the first place or is this a bug of some sort?
Cheers,
C.