From 9139d12295ecef0938efa071804ce5b65ab95d35 Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Wed, 5 Apr 2017 17:31:54 +0200
Subject: [PATCH] check if dataset is empty before sampling

---
 src/main/java/eu/hbp/mip/utils/DataUtil.java | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/eu/hbp/mip/utils/DataUtil.java b/src/main/java/eu/hbp/mip/utils/DataUtil.java
index 27031ec23..d6b65b2e4 100644
--- a/src/main/java/eu/hbp/mip/utils/DataUtil.java
+++ b/src/main/java/eu/hbp/mip/utils/DataUtil.java
@@ -32,7 +32,12 @@ public class DataUtil {
 
         for (String var : vars) {
             JsonArray currentVarData = new JsonArray();
-            int samplingPercentage = 100 * NB_ROWS_SAMPLING / (int) countAdniRows();
+            int nbRows = (int) countDatasetRows();
+            if (nbRows < 1)
+            {
+                return data;
+            }
+            int samplingPercentage = 100 * NB_ROWS_SAMPLING / nbRows;
             List<Object> queryResult = jdbcTemplate.queryForList(
                     "SELECT " + var + " FROM "+scienceMainTable+" " +
                             "TABLESAMPLE SYSTEM ("+ samplingPercentage +") REPEATABLE ( "+ TABLESAMPLE_SEED +" )", Object.class);
@@ -55,18 +60,16 @@ public class DataUtil {
     @Cacheable("colscount")
     public long countVariables()
     {
-        long count = jdbcTemplate.queryForObject(
+        return jdbcTemplate.queryForObject(
                 "SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS " +
                         "WHERE table_name = '"+scienceMainTable+"'", Long.class);
-        return count;
     }
 
     @Cacheable("rowscount")
-    public long countAdniRows()
+    public long countDatasetRows()
     {
-        long count = jdbcTemplate.queryForObject(
+        return jdbcTemplate.queryForObject(
                 "SELECT COUNT(*) FROM "+scienceMainTable, Long.class);
-        return count;
     }
 
 }
-- 
GitLab