aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorMax Melentiev <printercu@gmail.com>2012-12-24 15:46:52 +0400
committerMax Melentiev <melentievm@gmail.com>2013-12-07 17:30:00 +0400
commitc46ff516a25684a2d04d453b2db44d6fa224c350 (patch)
tree8c03f9bcb1b0143de1cb1f59e48dc1f9e88a361b /activerecord/lib
parent76dae289edf33d4b3fc937ecd9d2c77b294d8074 (diff)
downloadrails-c46ff516a25684a2d04d453b2db44d6fa224c350.tar.gz
rails-c46ff516a25684a2d04d453b2db44d6fa224c350.tar.bz2
rails-c46ff516a25684a2d04d453b2db44d6fa224c350.zip
fix for messages in invalid encoding from db-drivers
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index 8aa1ce5c04..e3ff0fb2c5 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -358,7 +358,11 @@ module ActiveRecord
:statement_name => statement_name,
:binds => binds) { yield }
rescue => e
- 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