I've got an application that is structurally similar to the issues example, so I modeled my code and pages on those (where 'modeled' should be read 'copied and pasted'). Of course, I made numerous name changes and whatnot, but I believe that the relevant annotated methods are the same, as are the JSF pages that use them. Unfortunately, I must be wrong, since my app does not work.

After I edit an issue, for example, click Update and then Done, I am returned to the editProject page, but the changes I made are not persisted (of course, the names are not 'issue' and 'project' in my app, but the roles are the same). Also, the URL on the editIssue page has a conversationId parameter, and when I return to the editProject page, the conversationId is still there in the editProject URL, and it has the same number (i.e., it appears that the conversation is not ending). More specifically, when I click "View Issue", I'm taken to the editIssue page with, say, conversationId=4. After clicking Update and Done, I'm returned to the editProject page, and the URL now also says conversationId=4. If I repeat the process, the conversationId keeps incrementing. In the original example app, no conversationId ever appears on the URL.

I clearly have a serious gap in my understanding of this stuff. Does anyone have pointers for where I should look for what might be different between my app and the example that could cause this sort of behavior?

OK, I figured out where the conversationId parameter was coming from. I had the SeamRedirectFilter in my web.xml (from previous thrashing). When I remove it, the conversationId stuff goes away, but it also completely breaks my application. Now when I click on View Issue, I get a blank (i.e. new) issue, instead of the one I click on.

Some more data that might help people point me in the right direction: I am attempting to use this code on top of an existing application (stateless session EJBs, EJB3 persistence over Postgres, custom (albeit trivial) LoginModule). I am also using Facelets in the UI.

Removing the 's in faces-config makes the app work again (duh), but I still have my original problem. Logging shows me that update method is being called, and the issue has the right data, but it is simply not being committed back to the database.

Even if you don't have direct advice, could someone perhaps suggest some places in Seam or Myfaces where I might start poking around, to save me from reading thousands of lines of code?