[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1840) Serious nasty problem with ManagedEntityIdentityInterceptor

Marius Oancea (JIRA) jira-events at lists.jboss.org
Thu Mar 5 13:10:22 EST 2009

    [ https://jira.jboss.org/jira/browse/JBSEAM-1840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12455689#action_12455689 ] 

Marius Oancea commented on JBSEAM-1840:

If you modify ManagedEntityWrapper 
  private String switchToConversationContextOfComponent(Component component)
      Manager manager = Manager.instance();
      if (manager.isNestedConversation()) 

  private String switchToConversationContextOfComponent(Component component)
      Manager manager = Manager.instance();
      if (component.isPerNestedConversation()) 

the application starts to work and do not nullize the list of entities.

> Serious nasty problem with ManagedEntityIdentityInterceptor
> -----------------------------------------------------------
>                 Key: JBSEAM-1840
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-1840
>             Project: Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0.BETA1
>         Environment: pure Tomcat 6.0.13 + Hibernate 3.2.4, Seam-managed non-JTA Hibernate transactions, Seam.2.CVS.20.08.2007
>            Reporter: Przemyslaw Jaskierski
>            Priority: Critical
>             Fix For: 2.0.0.CR1
> First of all, please do not underestimate problem in this report. It's a tough one, and definitely not a malfunction on my side. This disclaimer is because as a developer I know what a PR without a testcase is - but please bear with me. I've already spent ssooo much time on this issue that my co-workers will shoot my head off :(:(:(. I've tried to modify Seam examples to demonstrate it to you, but gave up due to problems with hibernate2 (not working Tomcat deployment), Booking (cannot log into it on AS) (BTW I understand that it's a BETA, just reporting)... It's 100% reproducible in my application, but I'm not allowed to share it :(:(:(.
> I have a wizard-like, long-running conversation driven by a jpdl pageflow (flushMode=MANUAL). There is a couple of Conversation-scoped Seam components that backs this wizard. I have some @Entity and List<@Entity> fields (pure Hibernate Annotations, no JPA etc.) in some of them. 
> Problem is that ManagedEntityIdentityInterceptor overwrites valid values of these fields with NULL or ArrayList<NULL>  values from time to time. It's quite discrete, and I manged to discover this behavior after a huge amount of time only because I've found this:
> http://www.jboss.com/index.html?module=bb&op=viewtopic&t=112335
> and
> http://jira.jboss.com/jira/browse/JBSEAM-1814.
> Note that in my situation there is no DataModel-related stuff involved, access to these fields is driven by simple get/setters.
> There is another strange thing. On Seam debug page I enter my conversation scope and list all pojos. There is, for example, "pojoName" and "pojoName.listName" components listed (I have only pojoName component registered with @Name, but looks like it's some kind of Seam optimization). As long as I enter/exit inspection of pojoName component, it's listName preserves its content as expected. But after clicking "pojoName.listName": 1st time it shows it's content, but after entering pojoName and pojoName.listName after this, this list is replaced by [null, null, null etc.] values. No, I don't do anything unusual there, it's a simple plain getter.
> I think it's not only limited to view-accessed EL-resolved entities, because even my @In components get nullyfied fields (even during the same unit of work, when doing some complex cross-component processing in a single http request). Non- at Entity fields are left untouched.
> After looking into ManagedEntityIdentityInterceptor code, I changed my fields to TRANSIENT (to be skipped by ignore(Field) method) and this made everything working OK, like expected. Of course having transient fields is not necessary what you want from you pojos, besides I think that it's a serious problem in ManagedEntityIdentityInterceptor that will ruin some nights of other developer if left unresolved.
> I will gladly test eventual fixes against my codebase.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list