From 51610855b1bec390450bf915ad7c6e88d2865600 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Mon, 2 Jul 2007 05:59:52 +0000
Subject: [PATCH] change: improve error reporting by throwing better exceptions

SVN: 773
---
 .../DatabaseConfigurationContext.java         | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
index d8eda33f889..f2785b1fe0a 100644
--- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
+++ b/dbmigration/source/java/ch/systemsx/cisd/dbmigration/DatabaseConfigurationContext.java
@@ -24,6 +24,7 @@ import org.apache.commons.dbcp.BasicDataSource;
 import org.springframework.jdbc.support.lob.LobHandler;
 
 import ch.systemsx.cisd.common.db.ISequencerScriptProvider;
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 
 /**
  * Configuration context for database operations.
@@ -77,8 +78,23 @@ public class DatabaseConfigurationContext
     private final DataSource createDataSource()
     {
         final BasicDataSource myDataSource = new BasicDataSource();
-        myDataSource.setDriverClassName(getDriver());
-        final String url = MessageFormat.format(getUrlTemplate(), getDatabaseName());
+        final String dsDriver = getDriver();
+        if (dsDriver == null)
+        {
+            throw new ConfigurationFailureException("No db driver defined.");
+        }
+        final String dsUrlTemplate = getUrlTemplate();
+        if (dsUrlTemplate == null)
+        {
+            throw new ConfigurationFailureException("No db url template defined.");
+        }
+        final String dsDatabaseName = getDatabaseName();
+        if (dsDatabaseName == null)
+        {
+            throw new ConfigurationFailureException("No db name defined.");
+        }
+        myDataSource.setDriverClassName(dsDriver);
+        final String url = MessageFormat.format(dsUrlTemplate, dsDatabaseName);
         myDataSource.setUrl(url);
         myDataSource.setUsername(owner);
         myDataSource.setPassword("");
-- 
GitLab