hi,
i don't understand what you are trying to achieve here. the
jcr:frozenNode/jcr:uuid is the uuid of the frozen node - and i'm not
sure for what you use this?
however, there could be a problem deleting a version while you are
iterating of the them.
further i don't think that you can delete a version as long it's still
referenced as base version.
regards, toby
On 12/7/07, monteka <[EMAIL PROTECTED]> wrote:
>
> 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.
>
>
--
-----------------------------------------< [EMAIL PROTECTED] >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---