]
Mike Mosiewicz commented on JBSEAM-1423:
----------------------------------------
If it does matter for anyone
I pinpointed the problem here:
public synchronized ConversationEntry createConversationEntry(String id,
List<String> stack)
{
ConversationEntry entry = new ConversationEntry(id, stack, this);
conversationIdEntryMap.put(id, entry);
setDirty();
return entry;
}
In my case I use my own conversationId which is 'category-6'. It is properly
passed as id here. However it doesn't appear on the stack. I see it only contains
'[3]'. Later when seam tries to reach ConversationEntry using last stack entry
there is none.
"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
Attachments: 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: