diff options
-rw-r--r-- | docs/news.txt | 6 | ||||
-rw-r--r-- | paste/exceptions/formatter.py | 8 | ||||
-rw-r--r-- | paste/exceptions/reporter.py | 6 |
3 files changed, 14 insertions, 6 deletions
diff --git a/docs/news.txt b/docs/news.txt index 66e5780..4df02c4 100644 --- a/docs/news.txt +++ b/docs/news.txt @@ -15,6 +15,12 @@ svn trunk * Added entry point for ``paste.translogger`` (``egg:Paste#translogger``) +* Fixed some cases where long data (e.g., a file upload) would show up + in the error report, creating a very very large report. Also, put + in a monkeypatch for the ``cgi`` module so that + ``repr(uploaded_field)`` won't load the entire field into memory + (from its temporary file location). + 0.9.9 ----- diff --git a/paste/exceptions/formatter.py b/paste/exceptions/formatter.py index 1dd592e..907475a 100644 --- a/paste/exceptions/formatter.py +++ b/paste/exceptions/formatter.py @@ -222,14 +222,16 @@ class TextFormatter(AbstractFormatter): v = repr(v) except Exception, e: v = 'Cannot display: %s' % e + v = truncate(v) lines.append(' %s: %s' % (n, v)) return '\n'.join(lines) elif (isinstance(value, (list, tuple)) and self.long_item_list(value)): - return '%s: [,\n %s]' % ( - title, '\n '.join(map(repr, value))) + parts = [truncate(repr(v)) for v in value] + return '%s: [\n %s]' % ( + title, ',\n '.join(parts)) else: - return '%s: %r' % (title, value) + return '%s: %s' % (title, truncate(repr(value))) class HTMLFormatter(TextFormatter): diff --git a/paste/exceptions/reporter.py b/paste/exceptions/reporter.py index 643a004..c09a7a6 100644 --- a/paste/exceptions/reporter.py +++ b/paste/exceptions/reporter.py @@ -75,9 +75,9 @@ class EmailReporter(Reporter): html_long.set_param('charset', 'UTF-8') msg.attach(html_msg) msg.attach(html_long) - msg['Subject'] = '%s%s: %s' % ( - self.subject_prefix, exc_data.exception_type, - exc_data.exception_value) + subject = '%s: %s' % (exc_data.exception_type, + formatter.truncate(str(exc_data.exception_value))) + msg['Subject'] = self.subject_prefix + subject msg['From'] = self.from_address msg['To'] = ', '.join(self.to_addresses) return msg |