[jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-1423) "Conversation Id Already In Use" exception with <conversation> tag in pages.xml
Shane Bryzak (JIRA)
jira-events at lists.jboss.org
Mon Sep 17 21:41:10 EDT 2007
[ http://jira.jboss.com/jira/browse/JBSEAM-1423?page=all ]
Shane Bryzak closed JBSEAM-1423.
The fix for this issue is to specify the named conversation in the @Begin annotation so that ConversationInterceptor knows it should redirect to an existing named conversation, like this:
@Begin(join = true, conversation="ConversationName")
public void createNewWidget()
Please note that adding a new property to the @Begin annotation is not an ideal solution, and will probably be deprecated/removed in the future and replaced with something more elegant. For now, however it is a working fix for those using the natural conversations feature.
For reference - a more preferable solution is to specify the conversation name in a <begin-conversation> element in pages.xml, however with the way that conversation management currently works in Seam this would be processed too late in the request (after the conversational action has already been invoked).
> "Conversation Id Already In Use" exception with <conversation> tag in pages.xml
> Key: JBSEAM-1423
> URL: http://jira.jboss.com/jira/browse/JBSEAM-1423
> Project: JBoss Seam
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.1.GA
> Environment: JBoss 4.05, Seam 1.2.1GA, Exadel studio, windows XP, 1gig ram, running on local copy of JBoss AS (non-clustered)
> Reporter: Andy Gibson
> Assigned To: Shane Bryzak
> Priority: Critical
> Fix For: 2.0.0.CR1
> Attachments: bookstore_minusLibs.zip, BookStoreTest_seam2Beta.z01, BookStoreTest_seam2Beta.z02, BookStoreTest_seam2Beta.z03, BookStoreTest_seam2Beta.z04, BookStoreTest_seam2Beta.zip, BookTest1.zip, BookTest2.zip, BookTest3.zip, BookTest4.zip
> When using the <conversation> tag in pages.xml to specify the conversation ID and parameter name for explicit conversation IDs, I get a "Conversation ID is already in use exception" . I have a test application and a test script which I have included below, but is also in the main application in file BookTest/Readme.txt.
> I also admit that this is new stuff, with no documentation for it, so I could be using it totally wrong, and there is no bug
> ------------------ Included Text from BooktTest\ReadMe.txt -----------
> Here is an application that demonstrates the problems with the conversation Id in use issue.It's a cut down version of my little test application, and now simply consists of a list of books, and the ability to edit those books. There is a minimal pageflow in there which just takes you to another page, and then back to the book edit page.
> I've modified it to connect to hsqldb, and included an import.sql script to populate with the test data used. I'm aiming for simple CRUD with pageflow on the book edit page and RESTful URLs which is why I have the bookId as a parameter, and use a book factory. The idea is to have a conversation on the 'search' page (which in this app, just lists the books), and then another conversation on the edit page. The idea being is that the edit page can be reused stand-alone and doesn't mess with the current conversation that invokes the page.
> I only mention this in case you think "WTF is he doing that for!"
> Test Cases :
> Here I've listed a couple of cases which can be re-produced when starting the application from scratch with a clean slate (i.e. restarting the app and clearing all conversations).
> Also note that the switcher is based on the one from the pdf docs, and seems fairly hit and miss on how it works. Destroying usually just switches conversations, sometimes you'll destroy one, and
> Case 1)
> Launch the app
> Click Lord of the Rings to edit it
> Click Search Books on the switcher
> Click "Edit Book Lord of the Rings" in the switcher, and it blows up (conversation in use exception)
> Case 2)
> Launch the app
> Click "Lord of the Rings" to edit it
> Click the "Home" link on the top header (link has propagation = none)
> Click "JBoss Seam" to edit that book
> Click "Lord of the Rings" in the Switcher at the bottom (it works ok)
> Click "Search books" in the switcher
> Click "Lord of the Rings" in the switcher at the bottom (it fails with a conversation in use exception)
> This demonstrates that things work ok if you are already on the bookEdit page, but not when you move to another conversation
> Case 3)
> Launch the app
> Click "Lord of the rings" to edit it
> Click the "search Books" on the switcher
> Click "Jboss Seam" to edit it
> On the edit page, click TestNav button to go to the next page in the pageflow
> In the switch click "Lord of the rings" to switch to the LOTR Conversation (it fails with a conversation in use exception)
> This demonstrates that switching conversations fails if you are in a similar pageflow, in a long conversation etc..
> For whatever reason though, the button on the extra page will take you back to the book edit page, which was broken on my original application with the same error. However, it appears to work here.
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues