--- C:/mantis/mantisbt-1.2.1-official/bug_update.php Fri Apr 23 14:28:34 2010 +++ C:/mantis/mantisbt-1.2.1-patches/bug_update.php Wed Jun 30 09:42:05 2010 @@ -137,19 +137,19 @@ continue; } + $t_old_custom_field_value = custom_field_get_value( $t_id, $f_bug_id ); # Produce an error if the field is required but wasn't posted - if ( !gpc_isset_custom_field( $t_id, $t_def['type'] ) && - ( $t_def['require_' . $t_custom_status_label] || - $t_def['type'] == CUSTOM_FIELD_TYPE_ENUM || - $t_def['type'] == CUSTOM_FIELD_TYPE_LIST || - $t_def['type'] == CUSTOM_FIELD_TYPE_MULTILIST || - $t_def['type'] == CUSTOM_FIELD_TYPE_RADIO ) ) { - error_parameters( lang_get_defaulted( custom_field_get_field( $t_id, 'name' ) ) ); - trigger_error( ERROR_EMPTY_FIELD, ERROR ); + if ( $t_def['require_' . $t_custom_status_label] + && $t_def['type'] != CUSTOM_FIELD_TYPE_CHECKBOX + && !gpc_isset_custom_field($t_id, $t_def['type']) + ) { + if(!isset($t_old_custom_field_value)) { + error_parameters( lang_get_defaulted( custom_field_get_field( $t_id, 'name' ) ) ); + trigger_error( ERROR_EMPTY_FIELD, ERROR ); + } } $t_new_custom_field_value = gpc_get_custom_field( "custom_field_$t_id", $t_def['type'], '' ); - $t_old_custom_field_value = custom_field_get_value( $t_id, $f_bug_id ); # Don't update the custom field if the new value both matches the old value and is valid # This ensures that changes to custom field validation will force the update of old invalid custom field values