From df5fdbc43d45908a7aa713bb3c5762cb8dc284c7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 18 Oct 2021 10:24:33 +0200 Subject: [PATCH] Use node identifiers instead of paths. --- .../src/org/argeo/support/odk/OdkUtils.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OdkUtils.java b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OdkUtils.java index 887d655..585b897 100644 --- a/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OdkUtils.java +++ b/knowledge/org.argeo.support.odk/src/org/argeo/support/odk/OdkUtils.java @@ -70,9 +70,12 @@ public class OdkUtils { String path = instanceUri.getPath(); if (!path.endsWith(".xml")) throw new IllegalArgumentException("File uri " + instanceUri + " must end with .xml"); - path = path.substring(0, path.length() - ".xml".length()); + // Work around bug in ODK Collect not supporting paths + // path = path.substring(0, path.length() - ".xml".length()); + // Node target = file.getSession().getNode(path); + String uuid = path.substring(1, path.length() - ".xml".length()); + Node target = file.getSession().getNodeByIdentifier(uuid); // FIXME hard code terms path in order to test ODK Collect bug - Node target = file.getSession().getNode("/example/terms"+path); if (target.isNodeType(NodeType.MIX_REFERENCEABLE)) { file.setProperty(Property.JCR_ID, target); if (file.hasProperty(Property.JCR_PATH)) -- 2.30.2