Defect #30455
closedAdding an issue note via email fails due to NoMethodError
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?
Files
Updated by Go MAEDA almost 6 years ago
- Target version set to 4.0.1
This is a serious issue that must be fixed asap.
Updated by Go MAEDA almost 6 years ago
- File 30455-fix.diff 30455-fix.diff added
Attaching a patch with a test.
Updated by Go MAEDA almost 6 years ago
- File 30455-fix-v2.diff 30455-fix-v2.diff added
Slightly improved the test.
Updated by Jean-Philippe Lang almost 6 years ago
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Committed, thanks.