[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5315) AuditJoinTable rows are no longer flushed to the database

Erik-Berndt Scheper (JIRA) noreply at atlassian.com
Thu Jun 24 05:02:09 EDT 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=37563#action_37563 ] 

Erik-Berndt Scheper commented on HHH-5315:
------------------------------------------

OK, to reproduce the problem, unzip the attached Eclipse project. Should be stand alone with all required jars attached.
Go to the src folder and open 

{{org.hibernate.envers.test.entities.collection.CascadeCollectionEntityTest}}

Run this as a JUnit test (this should FAIL).

Now go to line 87 and uncomment the following code 

{noformat} 						// entityManager.flush();
{noformat} 

Run the test again and it should succeed.


The same code is used by the envers testcase (patch file). And this does NOT fail. Still don't know why though ;-).


> AuditJoinTable rows are no longer flushed to the database
> ---------------------------------------------------------
>
>                 Key: HHH-5315
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5315
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: envers
>    Affects Versions: 3.5.1, 3.5.2
>         Environment: JPA with extended persistence context
>            Reporter: Erik-Berndt Scheper
>            Assignee: Adam Warski
>            Priority: Minor
>         Attachments: HHH-5315-Eclipse-project-testcase.zip, HHH-5315-envers-testcase-does-not-fail.patch
>
>
> In Hibernate core 3.5.1 issue HHH-3543 was fixed by using BeforeTransactionCompletionProcess instead of a transaction synchronization. I have found that since this change, rows in AuditJoinTables are no longer flushed to the database. (Envers 3.5.0 final works fine).
> I can work around the issue by adding a manual entityManager.flush() or by setting the flushmode to manual. 
> I have noticed that AuditProcess.java already executes a flush() statement, but this does not seem to suffice. I believe this is caused by the fact that during the doBeforeTransactionCompletion() extra WorkUnits are added to the hibernate ActionQueue (PersistentCollectionChangeWorkUnit) which process the AuditJoinTables.
>  

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

        


More information about the hibernate-issues mailing list