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