diff --git a/src/org/ohdsi/whiteRabbit/WhiteRabbitMain.java b/src/org/ohdsi/whiteRabbit/WhiteRabbitMain.java index e3fff8bd..3364a072 100644 --- a/src/org/ohdsi/whiteRabbit/WhiteRabbitMain.java +++ b/src/org/ohdsi/whiteRabbit/WhiteRabbitMain.java @@ -651,12 +651,17 @@ private void pickTables() { RichConnection connection = new RichConnection(sourceDbSettings.server, sourceDbSettings.domain, sourceDbSettings.user, sourceDbSettings.password, sourceDbSettings.dbType); String tableNames = StringUtilities.join(connection.getTableNames(sourceDbSettings.database), "\t"); - DBTableSelectionDialog selectionDialog = new DBTableSelectionDialog(frame, true, tableNames); - if (selectionDialog.getAnswer()) { - for (Object item : selectionDialog.getSelectedItems()) { - if (!tables.contains(item)) - tables.add((String) item); - tableList.setListData(tables.toArray()); + if (tableNames.length() == 0) { + JOptionPane.showMessageDialog(frame, "No tables found in database " + sourceDbSettings.database, "Error fetching table names", + JOptionPane.ERROR_MESSAGE); + } else { + DBTableSelectionDialog selectionDialog = new DBTableSelectionDialog(frame, true, tableNames); + if (selectionDialog.getAnswer()) { + for (Object item : selectionDialog.getSelectedItems()) { + if (!tables.contains(item)) + tables.add((String) item); + tableList.setListData(tables.toArray()); + } } } connection.close(); @@ -737,7 +742,9 @@ private void testConnection(DbSettings dbSettings) { } try { - connection.getTableNames(dbSettings.database); + List tableNames = connection.getTableNames(dbSettings.database); + if (tableNames.size() == 0) + throw new RuntimeException("Unable to retrieve table names for database " + dbSettings.database); } catch (Exception e) { String message = "Could not connect to database: " + e.getMessage(); JOptionPane.showMessageDialog(frame, StringUtilities.wordWrap(message, 80), "Error connecting to server", JOptionPane.ERROR_MESSAGE);