[ http://jira.jboss.com/jira/browse/JBAS-1386?page=comments#action_12315200 ] Peter Doornbosch commented on JBAS-1386: ----------------------------------------
My previous remark that "'new FieldState(jdbcCtx)' effectively does nothing" should have been: "does not reset the field flags". It does one thing: it causes the original field value to be discarded. This is correct (and necessary), but in combination with the fact that the instance is not reloaded this causes the bean to be updated always, even when no field is modified. > commit option B does not work with CMP 1.x > ------------------------------------------ > > Key: JBAS-1386 > URL: http://jira.jboss.com/jira/browse/JBAS-1386 > Project: JBoss Application Server > Type: Bug > Components: CMP service > Versions: JBossAS-4.0.1 Final > Environment: jdk 1.4.2 on linux > Reporter: Peter Doornbosch > Assignee: Scott M Stark > Attachments: employee-ejb.jar > > > When accessing a CMP 1.x entity bean with the commit option set to B, and the > bean is already loaded (by a previous invocation), the bean is not loaded > again from the database (as it should with commit option B). This can be > easily verified by deploying such a bean and enabling sql logging. > The cause of this bug is in the following method from JDBCCMP1xFieldBridge: > public void resetPersistenceContext(EntityEnterpriseContext ctx) > { > if(isReadTimedOut(ctx)) > { > JDBCContext jdbcCtx = (JDBCContext)ctx.getPersistenceContext(); > jdbcCtx.setFieldState(jdbcContextIndex, new FieldState(jdbcCtx)); > } > } > Assigning a 'new FieldState(jdbcCtx)' to the jdbcCtx effectively does > nothing, because JDBCCMP1xFieldBridge.FieldState delegates to EntityState and > the EntityState is not affected by this call. Hence, after this method, the > state of the field is still "loaded", and thus this field is not part of the > load-iterator created by JDBCEntityBridge. > I think the fix is rather easy: just reset the field flags explicitely (as it > is done in the cmp 2.x case), e.g. > jdbcCtx.getEntityState().resetFlags(tableIndex); -- 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 - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ JBoss-Development mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jboss-development
