From bc4111ba68e5eede1f68882a16d68441a845e30b Mon Sep 17 00:00:00 2001 From: konarkmodi Date: Tue, 19 Mar 2013 10:34:59 +0530 Subject: Fixed #18003 -- Preserved tracebacks when re-raising errors. Thanks jrothenbuhler for draft patch, Konark Modi for updates. --- django/http/multipartparser.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'django/http') diff --git a/django/http/multipartparser.py b/django/http/multipartparser.py index 070874f234..0c07335f27 100644 --- a/django/http/multipartparser.py +++ b/django/http/multipartparser.py @@ -8,6 +8,7 @@ from __future__ import unicode_literals import base64 import cgi +import sys from django.conf import settings from django.core.exceptions import SuspiciousOperation @@ -209,7 +210,8 @@ class MultiPartParser(object): chunk = base64.b64decode(chunk) except Exception as e: # Since this is only a chunk, any error is an unfixable error. - raise MultiPartParserError("Could not decode base64 data: %r" % e) + msg = "Could not decode base64 data: %r" % e + six.reraise(MultiPartParserError, MultiPartParserError(msg), sys.exc_info()[2]) for i, handler in enumerate(handlers): chunk_length = len(chunk) -- cgit v1.3