From c9df5fe9340004d1617f6a984ea31faaba3a1e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Geisend=C3=B6rfer?= Date: Wed, 16 Jun 2010 16:53:17 +0200 Subject: [PATCH] Fix: Handle resume errors --- lib/formidable/incoming_form.js | 8 +++++++- test/simple/test-incoming-form.js | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/formidable/incoming_form.js b/lib/formidable/incoming_form.js index 58e1ae8d..3fd3c9f8 100644 --- a/lib/formidable/incoming_form.js +++ b/lib/formidable/incoming_form.js @@ -36,7 +36,13 @@ IncomingForm.prototype.parse = function(req, cb) { }; this.resume = function() { - req.resume(); + try { + req.resume(); + } catch (err) { + this._error(err); + return false; + } + return true; }; diff --git a/test/simple/test-incoming-form.js b/test/simple/test-incoming-form.js index 9f0d9159..912d959f 100644 --- a/test/simple/test-incoming-form.js +++ b/test/simple/test-incoming-form.js @@ -63,6 +63,19 @@ test(function parse() { gently.expect(REQ, 'resume'); assert.strictEqual(form.resume(), true); })(); + + (function testResumeException() { + var ERR = new Error('dasdsa'); + gently.expect(REQ, 'resume', function() { + throw ERR; + }); + + gently.expect(form, '_error', function(err) { + assert.strictEqual(err, ERR); + }); + + assert.strictEqual(form.resume(), false); + })(); (function testEmitError() { var ERR = new Error('something bad happened');