From 4ddac76750a05a23a179b54f8f3fc785b1411f23 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 25 Feb 2022 06:06:18 +0100 Subject: [PATCH] Deal with corner case of empty form query --- .../app/servlet/odk/OdkManifestServlet.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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..9d1812c 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 @@ -155,13 +155,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); } } -- 2.30.2