From 1b0307b02de7a39b83c4ce98dc32848116ac11bb Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Mon, 5 Jan 2026 08:21:44 +0000 Subject: [PATCH] Fix 500 error when saving a custom field with an invalid regular expression (#43521). git-svn-id: https://svn.redmine.org/redmine/trunk@24259 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/custom_field.rb | 2 +- test/unit/custom_field_test.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index d14b67bdb..0eed2bf31 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -158,7 +158,7 @@ class CustomField < ApplicationRecord end end - if default_value.present? + if default_value.present? && errors[:regexp].blank? validate_field_value(default_value).each do |message| errors.add :default_value, message end diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb index a6c8d35d3..121e865d1 100644 --- a/test/unit/custom_field_test.rb +++ b/test/unit/custom_field_test.rb @@ -48,6 +48,15 @@ class CustomFieldTest < ActiveSupport::TestCase assert field.save end + def test_regexp_validation_with_invalid_regex_and_default_value + field = IssueCustomField.new(:name => 'regexp', :field_format => 'text', :regexp => '[', :default_value => 'abc') + assert !field.save + assert_include I18n.t('activerecord.errors.messages.invalid'), + field.errors[:regexp] + field.regexp = '[a-z0-9]' + assert field.save + end + def test_default_value_should_be_validated field = CustomField.new(:name => 'Test', :field_format => 'int') field.default_value = 'abc'