From a7ed6ebead2c4ea7be375667b081f5548cc185dd Mon Sep 17 00:00:00 2001 From: Martin Tajur Date: Thu, 5 Jul 2012 14:42:14 +0300 Subject: [PATCH 1/2] workaround for not having the entire callback chain inside a try-catch block --- lib/restler.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/restler.js b/lib/restler.js index bf6cc57..580bf6e 100644 --- a/lib/restler.js +++ b/lib/restler.js @@ -369,11 +369,12 @@ var parsers = { json: function(data, callback) { if (data && data.length) { try { - callback(null, JSON.parse(data)); + data = JSON.parse(data); + err = null; } catch (err) { err.message = 'Failed to parse JSON body: ' + err.message; - callback(err, null); } + callback(err, data); } else { callback(null, null); } From 896faac8ecb66ebd1b8ee2f53d21b18840180459 Mon Sep 17 00:00:00 2001 From: Martin Tajur Date: Thu, 5 Jul 2012 15:37:42 +0300 Subject: [PATCH 2/2] fix for global variable err leakage --- lib/restler.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/restler.js b/lib/restler.js index 580bf6e..019c7db 100644 --- a/lib/restler.js +++ b/lib/restler.js @@ -368,10 +368,12 @@ var parsers = { }, json: function(data, callback) { if (data && data.length) { + var err; try { data = JSON.parse(data); err = null; - } catch (err) { + } catch (caughtErr) { + err = caughtErr; err.message = 'Failed to parse JSON body: ' + err.message; } callback(err, data);