diff --git a/index.js b/index.js index 0af6eb8f45..b2013e2434 100644 --- a/index.js +++ b/index.js @@ -784,23 +784,25 @@ Multi.prototype.exec = function (callback) { var i, il, j, jl, reply, args, obj, key, val; - for (i = 1, il = self.queue.length; i < il; i += 1) { - reply = replies[i - 1]; - args = self.queue[i]; - - // Convert HGETALL reply to object - if (reply && args[0].toLowerCase() === "hgetall") { - obj = {}; - for (j = 0, jl = reply.length; j < jl; j += 2) { - key = reply[j].toString(); - val = reply[j + 1]; - obj[key] = val; + if (replies) { + for (i = 1, il = self.queue.length; i < il; i += 1) { + reply = replies[i - 1]; + args = self.queue[i]; + + // Convert HGETALL reply to object + if (reply && args[0].toLowerCase() === "hgetall") { + obj = {}; + for (j = 0, jl = reply.length; j < jl; j += 2) { + key = reply[j].toString(); + val = reply[j + 1]; + obj[key] = val; + } + replies[i - 1] = reply = obj; + } + + if (typeof args[args.length - 1] === "function") { + args[args.length - 1](null, reply); } - replies[i - 1] = reply = obj; - } - - if (typeof args[args.length - 1] === "function") { - args[args.length - 1](null, reply); } } diff --git a/test.js b/test.js index c03d00b88e..ec4c1e3a7c 100644 --- a/test.js +++ b/test.js @@ -204,6 +204,18 @@ tests.MULTI_6 = function () { }); }; +tests.WATCH_MULTI = function () { + var name = 'WATCH_MULTI'; + + client.watch(name); + var multi = client.multi(); + multi.incr(name); + client.incr(name); + multi.exec(function (err, replies) { + next(name); + }); +}; + tests.HSET = function () { var key = "test hash", field1 = new Buffer("0123456789"),