From 482e9394568fb5b14b71a64524dbb744e9a13907 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 5 Feb 2013 12:28:23 +0530 Subject: [PATCH] Transaction: Fix NPE while reading db.properties file Handle NPE while setting up data source in Transaction - This occured as Transaction is called it would run the following which assumed db.properties file, which may not be in one's classpath; // Initialize with assumed db.properties file initDataSource("db.properties"); - So, while this would be logged in logs, this is ignored for DatabaseCreator's case. In DatabaseCreator we call initDataSource with full path anyway. Signed-off-by: Rohit Yadav (cherry picked from commit 7795cfd75986874f9a947260379a761b0f3bde82) Signed-off-by: Rohit Yadav --- utils/src/com/cloud/utils/db/Transaction.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/src/com/cloud/utils/db/Transaction.java b/utils/src/com/cloud/utils/db/Transaction.java index 73f5bb100ea..8bc2a04f097 100755 --- a/utils/src/com/cloud/utils/db/Transaction.java +++ b/utils/src/com/cloud/utils/db/Transaction.java @@ -1006,10 +1006,7 @@ public class Transaction { public static void initDataSource(String propsFileName) { try { - File dbPropsFile = new File(propsFileName); - if (!dbPropsFile.exists()) { - dbPropsFile = PropertiesUtil.findConfigFile(propsFileName); - } + File dbPropsFile = PropertiesUtil.findConfigFile(propsFileName); final Properties dbProps; if (EncryptionSecretKeyChecker.useEncryption()) { StandardPBEStringEncryptor encryptor = EncryptionSecretKeyChecker.getEncryptor(); @@ -1022,6 +1019,9 @@ public class Transaction { } catch (IOException e) { s_logger.fatal("Unable to load db properties file, pl. check the classpath and file path configuration", e); return; + } catch (NullPointerException e) { + s_logger.fatal("Unable to load and read db properties file " + propsFileName + "Error: " + e); + return; } // FIXME: If params are missing...default them????