1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #8547 from printercu/patch-1

fix for messages in invalid encoding from db-drivers

Conflicts:
	activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
	activerecord/test/cases/connection_adapters/abstract_adapter_test.rb
This commit is contained in:
Rafael Mendonça França 2015-01-02 16:15:18 -03:00
commit 3793b4063a
2 changed files with 14 additions and 1 deletions

View file

@ -457,7 +457,12 @@ module ActiveRecord
end
def translate_exception_class(e, sql)
message = "#{e.class.name}: #{e.message}: #{sql}"
begin
message = "#{e.class.name}: #{e.message}: #{sql}"
rescue Encoding::CompatibilityError
message = "#{e.class.name}: #{e.message.force_encoding sql.encoding}: #{sql}"
end
@logger.error message if @logger
exception = translate_exception(e, message)
exception.set_backtrace e.backtrace

View file

@ -213,6 +213,14 @@ module ActiveRecord
test "type_to_sql returns a String for unmapped types" do
assert_equal "special_db_type", @connection.type_to_sql(:special_db_type)
end
def test_log_invalid_encoding
assert_raise ActiveRecord::StatementInvalid do
@connection.send :log, "SELECT 'ы' FROM DUAL" do
raise 'ы'.force_encoding(Encoding::ASCII_8BIT)
end
end
end
end
class AdapterTestWithoutTransaction < ActiveRecord::TestCase