Details
-
Bug
-
Resolution: Won't Do
-
Major
-
JBossAS-3.2.6 Final
-
None
Description
SourceForge Submitter: sflexus .
JBoss 3.2.5, JDK 1.4.2_04, Linux.
I have CMP Entity Customer and CMP entity Album with
the following relationships:
1) 1 Customer has Many Albums
2) 1 Customer has 1 Album "Inbox"
3) 1 Customer has 1 Album "Private"
4) 1 Customer has 1 Album "Recycle Bin"
So basically there are 3 Albums each of which has double
relationship to Customer, both 1-1 and 1-M
Relationship (1) has cascade-delete on Album side, so if
customer is deleted, all his albums should be deleted.
Relationships (2)-(4) has NO cascade-delete setting,
since (1) should be enough, as it references ALL
customer's albums, including those referenced in (2)-(4).
There are other entities related to Customer in the
application, but they seem non-important (at first sight).
If I try to remove Customer instance, I get foreigh key
violation in the database. All foreign keys were created
by JBoss itself. I have attached TRACE-level log. What
happens is that all 3 albums (inbox, private and recycle
bin, their IDs are 162, 163 and 164) are scheduled for
cascade delete, but only the one with ID=164 is updated
to set its CMR column to NULL before issuing DELETE
FROM Customer SQL. The foreign key fk_album_owner
which is being violated corresponds to relation (1) "1
Customer has Many Albums".
The interesting thing is that if I redeploy the application
and issue remove again, it completes normally! Looks like
it depends on some cache state.
Two files are attached. First one demonstrates foreign
key violation, second one demonstrates success deletion
after application is redeployed.