jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From monteka <mont...@anshinsoft.com>
Subject Problem deleting the first version in version graph
Date Fri, 07 Dec 2007 10:08:19 GMT

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.


Mime
View raw message