No long-running conversations - IllegalArgumentException: Stack must not be null
- by Markos Fragkakis
Hi all,
I have a very simple application with just 2 pages on WebLogic 10.3.2 (11g), Seam 2.2.0.GA. I have a command button in each, which makes a redirect-after-post to the other. This works well, as I see the URL of the current page I am seeing in the address bar.
BUT, even though I have no long-running conversations defined, after a random number of clicks, and - I think - after a random number of seconds (~10s - 60s) I get the lovely exception at the end of this post.
Now, if I have understood how temporary conversations work when redirecting this happens:
When I first see my application, the url is http://localhost:7001/myapp
When I click the button in pageA.xhtml, I end up in "pageB.xhtml?cid=26". This is normal because Seam extends the temporary conversation of the first request to last until the renderResponse phase of the redirect. So, it uses the cid (Conversation Id) of the extended temporary conversation to find any propagated parameters.
When I click the button in pageB.xhtml, I end up in pageA.xhtml?cid=26
The same cid was given to the new extended temporary conversation. This is normal because the conversation ended at the end of the previous redirect-after-post, and not the number 26 is free to use as a cid.
Is this all correct? If yes, why does this happen: If I re-type the applications home address (showing pageA) and re-click, I end up in pageB.xhtml?cid=29, which is a different number than 26. But 26 has ended after the previous RenderResponse phase, befire I re-types the url. Why is it not used instead of 29?
So, to sup up, 2 questions:
Why do I get the exception, even though I have not started any long-running conversations?
What happens exactly with the cid? On what basis does it change?
Cheers,