Browse files

only log an error if there is a logger. fixes #5226

Conflicts:

	activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
  • Loading branch information...
1 parent 8674823 commit af022918716e894608d655cdb52ec3164fee597a @tenderlove tenderlove committed Mar 2, 2012
View
2 activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -54,7 +54,7 @@ class AbstractAdapter
define_callbacks :checkout, :checkin
attr_accessor :visitor, :pool
- attr_reader :schema_cache, :last_use, :in_use
+ attr_reader :schema_cache, :last_use, :in_use, :logger
alias :in_use? :in_use
def initialize(connection, logger = nil, pool = nil) #:nodoc:
View
2 activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
@@ -204,7 +204,7 @@ def type_cast(value, column) # :nodoc:
value = super
if column.type == :string && value.encoding == Encoding::ASCII_8BIT
- @logger.error "Binary data inserted for `string` type on column `#{column.name}`"
+ logger.error "Binary data inserted for `string` type on column `#{column.name}`" if logger
value.encode! 'utf-8'
end
value
View
9 activerecord/test/cases/adapters/sqlite3/quoting_test.rb
@@ -1,6 +1,7 @@
require "cases/helper"
require 'bigdecimal'
require 'yaml'
+require 'securerandom'
module ActiveRecord
module ConnectionAdapters
@@ -12,6 +13,14 @@ def setup
:timeout => 100
end
+ def test_type_cast_binary_encoding_without_logger
+ @conn.extend(Module.new { def logger; end })
+ column = Struct.new(:type, :name).new(:string, "foo")
+ binary = SecureRandom.hex
+ expected = binary.dup.encode!('utf-8')
+ assert_equal expected, @conn.type_cast(binary, column)
+ end
+
def test_type_cast_symbol
assert_equal 'foo', @conn.type_cast(:foo, nil)
end

0 comments on commit af02291

Please sign in to comment.