Defect #34326
closedCSV import raises an exception if CSV header has empty columns
0%
Description
To reproduce the error, attempt to import issues from the attached csv file (issues.csv). In the CSV file, the second column of the header is blank.
You will see an error page after clicking the "Next" button on the import options page.
Started GET "/imports/ad8c66039d97b44886137856ade5f856/mapping" for 127.0.0.1 at 2020-11-27 14:51:09 +0900 Processing by ImportsController#mapping as HTML Parameters: {"id"=>"ad8c66039d97b44886137856ade5f856"} . . . NoMethodError (undefined method `downcase' for nil:NilClass): app/controllers/imports_controller.rb:177:in `map' app/controllers/imports_controller.rb:177:in `auto_map_fields' app/controllers/imports_controller.rb:70:in `mapping' lib/redmine/sudo_mode.rb:61:in `sudo_mode'
Files
Related issues
Updated by Go MAEDA about 4 years ago
- Related to Feature #22913: Auto-select fields mapping in Importing added
Updated by Yuichi HARADA about 4 years ago
- File fixed-34326.patch fixed-34326.patch added
I created a patch. No exception is raised if there are blank columns in the CSV header.
diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb
index 9431ca098..a5248dc1e 100644
--- a/app/controllers/imports_controller.rb
+++ b/app/controllers/imports_controller.rb
@@ -173,7 +173,7 @@ class ImportsController < ApplicationController
return if @import.settings['encoding'].blank?
mappings = @import.settings['mapping'] ||= {}
- headers = @import.headers.map(&:downcase)
+ headers = @import.headers.map{|header| header.to_s.downcase}
# Core fields
import_type::AUTO_MAPPABLE_FIELDS.each do |field_nm, label_nm|
Updated by Go MAEDA about 4 years ago
- File 34326-v2.patch 34326-v2.patch added
Yuichi HARADA wrote:
I created a patch. No exception is raised if there are blank columns in the CSV header.
[...]
Thank you for the patch. I think the test can be simplified by putting the blank column at the end.
Updated by Yuichi HARADA about 4 years ago
Go MAEDA wrote:
Yuichi HARADA wrote:
I created a patch. No exception is raised if there are blank columns in the CSV header.
[...]
Thank you for the patch. I think the test can be simplified by putting the blank column at the end.
Thank you for your point. I think it's good because you can detect test failures without changing the test.
Updated by Go MAEDA about 4 years ago
- Target version set to 4.2.0
Setting the target version to 4.2.0.
Updated by Go MAEDA about 4 years ago
- Subject changed from CSV import raises an exception if CSV header has blank columns to CSV import raises an exception if CSV header has empty columns
- Assignee set to Go MAEDA
- Target version deleted (
4.2.0) - Resolution set to Fixed
Committed the fix as a part of #22913. Thank you.