Defect #30455
Adding an issue note via email fails due to NoMethodError
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Email receiving | |||
Target version: | 4.0.1 | |||
Resolution: | Fixed | Affected version: | 4.0.0 |
Description
After upgrading my production Redmine to 4.0.0, I encountered a critical problem that I cannot add issue notes by replying emails.
On investigation, it turned out that NoMethodError that is raised at source:tags/4.0.0/app/models/mail_handler.rb#L240 causes the problem.
# ignore CLI-supplied defaults for new issues
handler_options[:issue].clear
The code expects that the class of handler_options[:issue]
is Hash, however, it is actually ActionController::Parameters. Since the class does not have a "clear" method, the code raises exception and Redmine fails to add the email to the issue note.
The error cannot be detected by running the unit test because the class of handler_options[:issue]
is not ActionController::Parameters but Hash in a test environment.
The following is a workaround for this issue.
Index: app/models/mail_handler.rb
===================================================================
--- app/models/mail_handler.rb (revision 17805)
+++ app/models/mail_handler.rb (working copy)
@@ -237,7 +237,7 @@
end
# ignore CLI-supplied defaults for new issues
- handler_options[:issue].clear
+ handler_options[:issue] = {}
journal = issue.init_journal(user)
if from_journal && from_journal.private_notes?
Associated revisions
Adding an issue note via email fails due to NoMethodError (#30455).
Patch by Go MAEDA.
History
#1
Updated by Go MAEDA over 3 years ago
- Target version set to 4.0.1
This is a serious issue that must be fixed asap.
#4
Updated by Jean-Philippe Lang over 3 years ago
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Committed, thanks.