jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tobias Bocanegra" <tobias.bocane...@day.com>
Subject Re: Problem deleting the first version in version graph
Date Fri, 07 Dec 2007 13:54:06 GMT
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 <monteka@anshinsoft.com> 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.
>
>


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
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 >---

Mime
View raw message