Hi,
I am new to the Jackrabbit world. I have just started working on a Portal
based project for reporting solution. We are using Jackrabbit 1.3.
I am stuck with the following problem:
I have a versionable node which has a default jcr:rootVersion and additional
versions.
Now I can add any number of versions (i.e. different versions of the same
template).
Problem:
I have the following API that takes care of deleting the selected version of
the template (identified by the UUID):
public Object doInJcr(Session session) throws IOException,
RepositoryException {
String uuid = null;
try {
uuid = (String) PropertyUtils.getProperty(bean,
"uuid");
} catch (IllegalAccessException iae) {
log.error("Error in getting property 'uuid'", iae);
} catch (InvocationTargetException ite) {
log.error("Error in getting property 'uuid'", ite);
} catch (NoSuchMethodException nsme) {
log.error("Error in getting property 'uuid'", nsme);
}
Node root = session.getRootNode();
Node domainRoot = getDomainRoot(root);
Node domainNode = domainRoot.getNode(this.nodeName);
//nodeName is "template"
VersionHistory history = domainNode.getVersionHistory();
Version previous = null;
for (VersionIterator vit = history.getAllVersions();
vit.hasNext();) {
Version version = vit.nextVersion();
Node frozen = version.getNode("jcr:frozenNode");
if (uuid.equals(frozen.getUUID())) {
if
(version.equals(domainNode.getBaseVersion())) {
if (history.getAllVersions().getSize() >
2) {
domainNode.restore(previous,
true);
history.removeVersion(version.getName());
} else {
domainNode.remove();
}
} else {
history.removeVersion(version.getName());
}
break;
} else {
previous = version;
continue;
}
}
session.save();
return null;
}
Cases:
Case #1
--------
Say my version graph is like this:
VH (Version History) has child nodes VR (jcr:RootVersion) and V1
I have only 1 version (template), V1 and I choose to delete it - WORKING AS
EXPECTED
Case #2
--------
Say my version graph is like this:
VH (Version History) has child nodes VR (jcr:RootVersion) , V1 and V2
I want to delete version V2 - WORKING AS EXPECTED
Case #3
--------
Say my version graph is like this:
VH (Version History) has child nodes VR (jcr:RootVersion) , V1, V2 and V3
I want to delete version V2 - WORKING AS EXPECTED
Case #4
--------
Say my version graph is like this:
VH (Version History) has child nodes VR (jcr:RootVersion) , V1 and V2
I want to delete version V1 - NOT WORKING
I am unable to reconnect the VR to the second version, V2.
Actually when i try to delete the first version V1, the base node gets
deleted and so I loose the following versions also.
Expected behavior is that I should be able to delete any version (template).
Please advice ASAP.
Thank you.
--
View this message in context:
http://www.nabble.com/Problem-deleting-the-first-version-in-version-graph-tf4961225.html#a14209765
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.