Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,9 @@ def autocommit=(value)
def ping
exec_no_retry("select 1 from dual")
@active = true
rescue NativeException => e
rescue Java::JavaSql::SQLException => e
@active = false
if e.message =~ /^java\.sql\.SQL(Recoverable)?Exception/
raise OracleEnhanced::ConnectionException, e.message
else
raise
end
raise OracleEnhanced::ConnectionException, e.message
end

# Resets connection, by logging off and creating a new connection.
Expand All @@ -224,13 +220,9 @@ def reset!
begin
new_connection(@config)
@active = true
rescue NativeException => e
rescue Java::JavaSql::SQLException => e
@active = false
if e.message =~ /^java\.sql\.SQL(Recoverable)?Exception/
raise OracleEnhanced::ConnectionException, e.message
else
raise
end
raise OracleEnhanced::ConnectionException, e.message
end
end

Expand All @@ -239,8 +231,8 @@ def with_retry(&block)
should_retry = auto_retry? && autocommit?
begin
yield if block_given?
rescue NativeException => e
raise unless e.message =~ /^java\.sql\.SQL(Recoverable)?Exception: (Closed Connection|Io exception:|No more data to read from socket|IO Error:)/
rescue Java::JavaSql::SQLException => e
raise unless e.message =~ /^(Closed Connection|Io exception:|No more data to read from socket|IO Error:)/
@active = false
raise unless should_retry
should_retry = false
Expand Down Expand Up @@ -455,11 +447,9 @@ def describe(name)
super
end

# Return NativeException / java.sql.SQLException error code
# Return java.sql.SQLException error code
def error_code(exception)
case exception
when NativeException
exception.cause.getErrorCode
when Java::JavaSql::SQLException
exception.getErrorCode
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ def kill_current_session
ActiveRecord::Base.connection.auto_retry = false
kill_current_session
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
expect { @conn.exec("SELECT * FROM dual") }.to raise_error(NativeException)
expect { @conn.exec("SELECT * FROM dual") }.to raise_error(Java::JavaSql::SQLRecoverableException)
else
expect { @conn.exec("SELECT * FROM dual") }.to raise_error(OCIError)
end
Expand All @@ -399,7 +399,7 @@ def kill_current_session
ActiveRecord::Base.connection.auto_retry = false
kill_current_session
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
expect { @conn.select("SELECT * FROM dual") }.to raise_error(NativeException)
expect { @conn.select("SELECT * FROM dual") }.to raise_error(Java::JavaSql::SQLRecoverableException)
else
expect { @conn.select("SELECT * FROM dual") }.to raise_error(OCIError)
end
Expand Down