X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.servlet.odk%2Fsrc%2Forg%2Fargeo%2Fapp%2Fservlet%2Fodk%2FOdkManifestServlet.java;h=f296170778a381e05cfbf61a52751ee8bb12839a;hb=6c42d7ee01c29a184390a3fd789ebdf5cde84a00;hp=06826962a97523401764032233301c1a4ef3bc7e;hpb=6562d5f99ebb2dd850468b6404cce9b80c0c4ff6;p=gpl%2Fargeo-suite.git
diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java
index 0682696..f296170 100644
--- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java
+++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java
@@ -91,21 +91,13 @@ public class OdkManifestServlet extends HttpServlet {
MessageDigest messageDigest = MessageDigest.getInstance(DigestUtils.MD5);
// TODO cache a temp file ?
- try (DigestOutputStream out = new DigestOutputStream(new NullOutputStream(),
+ try (DigestOutputStream out = new DigestOutputStream(NullOutputStream.NULL_OUTPUT_STREAM,
messageDigest)) {
writeMediaFile(out, target, mimeType, charset);
writer.append("");
writer.append("md5sum:" + DigestUtils.toHexString(out.getMessageDigest().digest()));
writer.append("");
}
-
-// try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-// session.exportDocumentView(target.getPath(), out, true, false);
-// String fileCsum = DigestUtils.digest(DigestUtils.MD5, out.toByteArray());
-// writer.append("");
-// writer.append("md5sum:" + fileCsum);
-// writer.append("");
-// }
writer.append("" + protocol + "://" + serverName
+ (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort)
+ "/api/odk/formManifest" + file.getPath() + "");
@@ -123,11 +115,6 @@ public class OdkManifestServlet extends HttpServlet {
Node target = node.getProperty(Property.JCR_ID).getNode();
writeMediaFile(resp.getOutputStream(), target, mimeType, charset);
-// try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-// session.exportDocumentView(target.getPath(), out, true, false);
-// System.out.println(new String(out.toByteArray(), StandardCharsets.UTF_8));
-// resp.getOutputStream().write(out.toByteArray());
-// }
} else {
throw new IllegalArgumentException("Unsupported node " + node);
}
@@ -155,13 +142,21 @@ public class OdkManifestServlet extends HttpServlet {
CsvWriter csvWriter = new CsvWriter(out, charset);
csvWriter.writeLine(columnNames);
RowIterator rit = queryResult.getRows();
- while (rit.hasNext()) {
- Row row = rit.nextRow();
- Value[] values = row.getValues();
- List lst = new ArrayList<>();
- for (Value value : values) {
- lst.add(value.getString());
+ if (rit.hasNext()) {
+ while (rit.hasNext()) {
+ Row row = rit.nextRow();
+ Value[] values = row.getValues();
+ List lst = new ArrayList<>();
+ for (Value value : values) {
+ lst.add(value.getString());
+ }
+ csvWriter.writeLine(lst);
}
+ } else {
+ // corner case of an empty initial database
+ List lst = new ArrayList<>();
+ for (int i = 0; i < columnNames.length; i++)
+ lst.add("-");
csvWriter.writeLine(lst);
}
}