jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From monteka <mont...@anshinsoft.com>
Subject Re: Problem deleting the first version in version graph
Date Mon, 17 Dec 2007 04:26:54 GMT

Hi Toby,

Let me reiterate over the problem.

The Problem:

Say I have a VersionHistory (VH) node which has a jcr:rootVersion (VR) by
default. Now I add multiple versions say V1, V2 and V3.

So the links are as follows

VH->VR->V1->V2->V3

Now, I want to delete the base version V1, so that the version history links
become

VH->VR->V2->V3

The problem is that if I delete the base version then I am unable to view
the whole version history in my application. But this doesn't happen if I
delete either V2 or V3 in the first case. The problem only comes if I delete
the base version.

Please revert back if the problem is still not clear.

Regards,
Montek






Tobias Bocanegra wrote:
> 
> 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 >---
> 
> 

-- 
View this message in context: http://www.nabble.com/Problem-deleting-the-first-version-in-version-graph-tp14209765p14370045.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Mime
View raw message