]> source.dussan.org Git - redmine.git/commitdiff
Fixed that custom field referencing deleted value trigger an error on display (#16926).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 May 2014 10:12:40 +0000 (10:12 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 24 May 2014 10:12:40 +0000 (10:12 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@13141 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/field_format.rb
test/unit/lib/redmine/field_format/version_field_format_test.rb

index 3b567a0b8190495888bb275ce7e1638499d34d94..655e2c98499ae6ab35c82ec6b79db917a064a3d8 100644 (file)
@@ -98,9 +98,10 @@ module Redmine
         if value.blank?
           nil
         elsif value.is_a?(Array)
-          value.map do |v|
+          casted = value.map do |v|
             cast_single_value(custom_field, v, customized)
-          end.sort
+          end
+          casted.compact.sort
         else
           cast_single_value(custom_field, value, customized)
         end
index 50e0e378645048c1c4b39e52c6fb362879fd2b0e..f7fc72a03f7bdf479c068ecb9483ccd46d918144 100644 (file)
@@ -56,4 +56,11 @@ class Redmine::VersionFieldFormatTest < ActionView::TestCase
 
     assert_equal expected, field.possible_values_options(project).map(&:first)
   end
+
+  def test_cast_value_should_not_raise_error_when_array_contains_value_casted_to_nil
+    field = IssueCustomField.new(:field_format => 'version')
+    assert_nothing_raised do
+      field.cast_value([1,2, 42])
+    end
+  end
 end