summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/news.txt6
-rw-r--r--paste/exceptions/formatter.py8
-rw-r--r--paste/exceptions/reporter.py6
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