Deal with corner case of empty form query
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:06:18 +0000 (06:06 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:06:18 +0000 (06:06 +0100)
org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java

index 06826962a97523401764032233301c1a4ef3bc7e..9d1812cabfb6b8f13cdf316206b8c29ec45542bd 100644 (file)
@@ -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<String> 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<String> lst = new ArrayList<>();
+                                               for (Value value : values) {
+                                                       lst.add(value.getString());
+                                               }
+                                               csvWriter.writeLine(lst);
                                        }
+                               } else {
+                                       // corner case of an empty initial database
+                                       List<String> lst = new ArrayList<>();
+                                       for (int i = 0; i < columnNames.length; i++)
+                                               lst.add("-");
                                        csvWriter.writeLine(lst);
                                }
                        }