Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 3145 by [email protected]: Cannot add review comments to
attached text files
http://code.google.com/p/reviewboard/issues/detail?id=3145
*** READ THIS BEFORE POSTING!
***
*** You must complete this form in its entirety, or your bug report will be
rejected.
***
*** For customer support, please post to [email protected]
***
*** If you have a patch, please submit it to
http://reviews.reviewboard.org/
***
*** Do not post confidential information in this bug report!
What version are you running?
ReviewBoard 1.7.16
What's the URL of the page containing the problem?
POST /reviews/api/review-requests/231/reviews/784/file-attachment-comments/
GET
/reviews/api/review-requests/231/reviews/784/file-attachment-comments/9/?api_format=json
What steps will reproduce the problem?
1. Create a review request and fill in enough to publish it.
2. Update -> Add File. Attach a text file, not an image.
3. Publish the review request.
4. Click "Add Comment" on the attachment.
5. Write a comment and press "Save".
At this point, the POST to
/reviews/api/review-requests/231/reviews/784/file-attachment-comments/ gets
a 500 error from the server. However this error is not indicated in the web
UI, and it does not move on to indicating you have a pending review.
6. Reload the page. It now indicates you have a pending review.
7. Click "Edit Review". It shows the comment on the file attachment, so it
did save after all! However, it also causes an invisible 500 error for GET
/reviews/api/review-requests/231/reviews/784/file-attachment-comments/9/?api_format=json
8. Press "Save" or "Publish Review". This causes another 500 error on GET
/reviews/api/review-requests/231/reviews/784/file-attachment-comments/9/?api_format=json
and the web UI brings up "A server error occured." The review cannot be
published because of this.
9. Discarding the review and writing a new one without a comment on a text
file attachment is successful.
10. Uploading an image instead of a text file, and adding review comments
to that is successful.
What is the expected output? What do you see instead?
I expect to be able to comment on uploaded text files just as well as
uploaded image files. Instead I get 500 errors.
What operating system are you using? What browser?
Linux, Firefox 25.0.1
Please provide any additional information below.
Excerpt from the POST request traceback:
Request Method: POST
Request
URL: .../reviews/api/review-requests/231/reviews/784/file-attachment-comments/
Django Version: 1.4.9
Python Version: 2.6.8
Python Path:
['.../reviewboard/conf', '/usr/lib64/python2.6/site-packages/pysvn-1.7.4-py2.6-linux-x86_64.egg', '/usr/lib/python2.6/site-packages/recaptcha_client-1.0.6-py2.6.egg', '/usr/lib/python2.6/site-packages/pytz-2013d-py2.6.egg', '/usr/lib/python2.6/site-packages/python_memcached-1.53-py2.6.egg', '/usr/lib/python2.6/site-packages/python_dateutil-1.5-py2.6.egg', '/usr/lib/python2.6/site-packages/Pygments-1.6-py2.6.egg', '/usr/lib/python2.6/site-packages/paramiko-1.11.0-py2.6.egg', '/usr/lib/python2.6/site-packages/mimeparse-0.1.3-py2.6.egg', '/usr/lib/python2.6/site-packages/Markdown-2.3.1-py2.6.egg', '/usr/lib/python2.6/site-packages/docutils-0.11-py2.6.egg', '/usr/lib/python2.6/site-packages/django_pipeline-1.2.24-py2.6.egg', '/usr/lib/python2.6/site-packages/django_evolution-0.6.9-py2.6.egg', '/usr/lib/python2.6/site-packages/pycrypto-2.6-py2.6-linux-x86_64.egg', '/usr/lib/python2.6/site-packages/PIL-1.1.6-py2.6-linux-x86_64.egg', '/usr/lib/python2.6/site-packages/feedparser-5.1.3-py2.6.egg', '/usr/lib/python2.6/site-packages/ReviewBoard-1.7.16-py2.6.egg', '/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg', '/usr/lib/python2.6/site-packages/Django-1.4.9-py2.6.egg', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']
Traceback:
File "/usr/lib/python2.6/site-packages/Django-1.4.9-py2.6.egg/django/core/handlers/base.py"
in
get_response
188. response = middleware_method(request, response)
File "/usr/lib/python2.6/site-packages/Django-1.4.9-py2.6.egg/django/middleware/http.py"
in
process_response
14. response['Content-Length'] = str(len(response.content))
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/core.py"
in
_get_content
285. content = adapter.encode(self.api_data,
request=self.request)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/core.py"
in
encode
88. return super(JSONEncoderAdapter, self).encode(o)
File "/usr/lib64/python2.6/json/encoder.py" in encode
367. chunks = list(self.iterencode(o))
File "/usr/lib64/python2.6/json/encoder.py" in _iterencode
309. for chunk in self._iterencode_dict(o, markers):
File "/usr/lib64/python2.6/json/encoder.py" in _iterencode_dict
275. for chunk in self._iterencode(value, markers):
File "/usr/lib64/python2.6/json/encoder.py" in _iterencode
317. for chunk in self._iterencode_default(o, markers):
File "/usr/lib64/python2.6/json/encoder.py" in _iterencode_default
323. newobj = self.default(o)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/core.py"
in
default
96. result = self.encoder.encode(o, *self.encode_args,
**self.encode_kwargs)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/core.py"
in
encode
265. result = encoder.encode(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/encoders.py"
in
encode
48. return resource.serialize_object(o, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.22-py2.6.egg/djblets/webapi/resources.py"
in
serialize_object
954. value = serialize_func(obj, request=request)
File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.16-py2.6.egg/reviewboard/webapi/resources.py"
in
serialize_thumbnail_html_field
5433. return obj.thumbnail
File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.16-py2.6.egg/reviewboard/reviews/models.py"
in
thumbnail
1591. return
self.file_attachment.review_ui.get_comment_thumbnail(self)
Exception Type: AttributeError at
/reviews/api/review-requests/231/reviews/784/file-attachment-comments/
Exception Value: 'NoneType' object has no attribute 'get_comment_thumbnail'
POST:
file_attachment_id = u'51'
text = u'test'
issue_opened = u'false'
api_format = u'json'
Excerpt from the GET request traceback:
Request Method: GET
Request URL:
.../api/review-requests/224/reviews/782/file-attachment-comments/8/?api_format=json
Django Version: 1.4.9
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute
'get_comment_thumbnail'
Exception Location:
/usr/lib/python2.6/site-packages/ReviewBoard-1.7.16-py2.6.egg/reviewboard/reviews/models.py
in thumbnail, line 1591
Request information
GET
Variable Value
api_format u'json'
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/reviewboard-issues.
For more options, visit https://groups.google.com/groups/opt_out.