Hi Marcel,
Marcel Reutegger wrote:
Hi Daniel,
that's quite strange. I tried to reproduce the issue, but was unable
to do so. Is there anything unusual in the log files that might
explain why the queries fail?
I just noticed one strange thing though. If I execute the query
"/jcr:root/*" I only get: "/jcr:system (rep:system)". However, as you
can see in the dump in my first message I would have expected that my
"interedu" node is the sibling node of "jcr:system" and thus included in
the result (I have copied the relevant part of the dump below).
(rep:root)
Prop: jcr:primaryType = rep:root
jcr:system (rep:system)
Prop: jcr:primaryType = rep:system
<<large subtree here - irrelevant to the problem>>
interedu (nt:unstructured)
Prop: jcr:primaryType = nt:unstructured
[...]
So my #save() method makes me suspicious (see below a slightly
simplified version):
private static final String APPLICATION_ROOT_NODE = "interedu";
//...
public void save(final InputStream data, final String originalName) {
final JcrConstants constants = new JcrConstants(session);
final Node root = session.getRootNode();
Node applicationRoot = null;
// create the application root node if necessary
if (root.hasNode(APPLICATION_ROOT_NODE)) {
applicationRoot = root.getNode(APPLICATION_ROOT_NODE);
} else {
applicationRoot = root.addNode(APPLICATION_ROOT_NODE);
}
final Node assetNode = applicationRoot.addNode(fileName,
constants.getNT_FILE());
// the assetNode is the 'entry point' for an asset.
assetNode.addMixin(constants.getMIX_REFERENCEABLE());
Node contentNode = assetNode.addNode(constants.getJCR_CONTENT(),
constants.getNT_RESOURCE());
// only the content node is versionable, not its parent!
contentNode.addMixin(constants.getMIX_VERSIONABLE());
try {
final JcrConstants constants = new JcrConstants(session);
contentNode.setProperty(constants.getJCR_DATA(), data);
contentNode.setProperty(constants.getJCR_MIMETYPE(),
MimeTypeDetector.getMimetype(originalName));
contentNode.setProperty(constants.getJCR_LASTMODIFIED(),
Calendar.getInstance().getTimeInMillis());
session.save();
contentNode.checkin();
} finally {
IOUtils.closeQuietly(data);
}
}
bye,
Daniel