Community
Participate
Working Groups
Build Identifier: 3.0 CDO should provide an option which prevents (on the server) the removal of objects which are still referenced (incoming references). Concurrent commits of two client can cause the local consistent model to become inconsistent on the server: Object A references object B Client 1: Add C which references B Client 2: Delete A & B (commit should fail because B is still referenced by C) (Assuming client did not yet receive the invalidation of the first commit) Reproducible: Always
Doesn't this duplicate bug 315407 and bug 316421 ? The way I see it, we just don't have a server-side check preventing removal of reference targets. IMO such a check (as I suppose Eike has implemented in his patch for bug 315407) would solve all 3 issues... Or are there subtle differences that I'm not thinking of?
The boolean configuration property of the server to control this behaviour is IRepository.Props.ENSURE_REFERENTIAL_INTEGRITY = "ensureReferentialIntegrity". The same property is used to control the behaviour of bug 315407.
Rebasing all outstanding enhancements requests to version 4.0
Created attachment 173443 [details] Patch v1
Created attachment 173474 [details] Patch v2
Committed to HEAD
Available in R20110608-1407