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: Cannot update previous version of nt:file node
Date Thu, 15 Mar 2007 09:34:50 GMT
hi,
please note that in you case the version only has one predecessor, the
rootVersion. and it does contains an empty frozen node. thats probably
where your PathNotFoundException is comming from.

regards, toby

ps: play around with the jcr-browser at http://jcr.day.com
open the content explorer, click on 'view settings' and clear all
filters. then you can browse the jcr:system/jcr:versionStorage. maybe
that clarifies the structure of the version storage.

On 3/15/07, Lubos and Alena Pochman <pochmans@gmail.com> wrote:
> I create nt:file node like:
>
>         Node root = session.getRootNode();
>         document = root.addNode(instanceName, "nt:file");
>         document.addMixin("mix:versionable");  // Make document referencable
> and versionable
>         Node content = document.addNode("jcr:content", "nt:resource");
>         content.setProperty("jcr:mimeType", "application/zip");
>         content.setProperty("jcr:data", new
> ByteArrayInputStream(zipContents));
>         content.setProperty("jcr:lastModified", Calendar.getInstance());
>         this.session.save();
>
> Then I create a new version like:
>
>         document.checkout();
>         Node content = (Node)document.getPrimaryItem();
>         content.setProperty("jcr:data", new
> ByteArrayInputStream(zipContents));
>         content.setProperty("jcr:lastModified", Calendar.getInstance());
>         this.session.save();
>         document.checkin();
>
> Then I try to retrieve current version data (that works OK):
>
>         node = this.session.getNodeByUUID(id);
>         Property prop = node.getProperty("jcr:content/jcr:data");
>         InputStream is = prop.getStream();
>
> But then I try to retrieve previous version of the node, it fails with
> "PathNotFoundException: jcr:frozenNode/jcr:content/jcr:data" exception when
> calling getProperty("jcr:frozenNode/jcr:content/jcr:data"):
>
>             Node document = this.session.getNodeByUUID(id);
>             Version base = document.getBaseVersion();
>             Version[] predecessors = base.getPredecessors();
>              for (int i = 0; i < predecessors.length; i++) {
>                        System.out.println(predecessors[i].getCreated() + ":
> "
>                                +
> predecessors[i].getProperty("jcr:frozenNode/jcr:content/jcr:data").getLength());
>
> How do I access and read properties of previous versions of a node?
>
> Thanks, Lubos
>


-- 
-----------------------------------------< 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