From 21a076703fe19225d50a714ecb8d013c2beed91a Mon Sep 17 00:00:00 2001 From: Thabo Date: Wed, 16 Sep 2015 10:57:28 -0700 Subject: [PATCH 1/2] best practice with async to avoid multiple callbacks being fired --- initializers/dataAccess.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/initializers/dataAccess.js b/initializers/dataAccess.js index 60bceff6a..b60428be0 100644 --- a/initializers/dataAccess.js +++ b/initializers/dataAccess.js @@ -135,15 +135,15 @@ function executePreparedStatement(api, sql, parameters, connection, next, db) { req({ url: javaReadBridge, method: "POST", body: body, json: true }, function(error, response, body) { if (error) { - cb(error); + return cb(error); } if (response.statusCode != 200) { - cb(JSON.stringify(body)); + return cb(JSON.stringify(body)); } api.log("Response:" + JSON.stringify(body), "debug"); - cb(null, body.results); + return cb(null, body.results); }); } else { api.log("Database connected", 'debug'); From 8028713b9c6bcc2a79ac522efd46720f944f3bba Mon Sep 17 00:00:00 2001 From: Thabo Date: Wed, 16 Sep 2015 11:00:49 -0700 Subject: [PATCH 2/2] handle sql exceptions --- initializers/dataAccess.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/initializers/dataAccess.js b/initializers/dataAccess.js index b60428be0..c49ad980c 100644 --- a/initializers/dataAccess.js +++ b/initializers/dataAccess.js @@ -117,8 +117,7 @@ function executePreparedStatement(api, sql, parameters, connection, next, db) { async.waterfall([ function (cb) { parameterizeQuery(sql, parameters, cb); - }, - function (parametrizedQuery, cb) { + }, function (parametrizedQuery, cb) { sql = parametrizedQuery; if (api.helper.readTransaction) { @@ -142,6 +141,10 @@ function executePreparedStatement(api, sql, parameters, connection, next, db) { return cb(JSON.stringify(body)); } + if (body.exception) { + return cb("SQL Exception from Java Bridge: " + body.exception); + } + api.log("Response:" + JSON.stringify(body), "debug"); return cb(null, body.results); });