Removal of versions throws javax.jcr.ReferentialIntegrityException
------------------------------------------------------------------
Key: JCR-272
URL: http://issues.apache.org/jira/browse/JCR-272
Project: Jackrabbit
Type: Bug
Components: versioning
Versions: 1.0
Environment: CVS build (2005-11-16) and DerbyPersistenceManager
Reporter: Nicolas Belisle
>From the following thread :
>http://www.mail-archive.com/jackrabbit-dev%40incubator.apache.org/msg03483.html
When trying to remove a version of a Node the VersionHistory.removeVersion()
method throws : "javax.jcr.ReferentialIntegrityException: Unable to remove
version. At least once referenced.".
Secton 8.2.2.10 (Removal of Versions) of the specification indicates that the
version graph should be automatically repaired upon removal. Then,
VersionHistory.removeVersion() should take care of references. (In fact, a user
cannot alter the references (jcr:predecessors and jcr:successors), since they
are protected properties.)
Here's the example (*updated) :
Node root1 = session.getRootNode() ;
Node test1 = root1.addNode("test") ;
test1.addMixin("mix:versionable");
test1.setProperty("test", "1");
session.save();
test1.checkin();
test1.checkout();
test1.setProperty("test", "2");
session.save();
test1.checkin();
test1.checkout();
test1.setProperty("test", "3");
session.save();
test1.checkin();
String baseVersion = test1.getBaseVersion().getName();
System.out.println("Base version name: " + baseVersion);
VersionHistory vh = test1.getVersionHistory();
for (VersionIterator vi = vh.getAllVersions(); vi.hasNext(); ) {
Version currenVersion = vi.nextVersion();
String versionName = currenVersion.getName();
if (!versionName.equals("jcr:rootVersion") &&
!versionName.equals(baseVersion)) {
String propertyValue =
currenVersion.getNode("jcr:frozenNode").getProperty("test").getString();
System.out.println("Removing version : " + versionName + " with value:
" + propertyValue);
vh.removeVersion(versionName);
}
}
Regards,
Nicolas
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira