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
3 changes: 3 additions & 0 deletions lib/mongo/db.rb
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,9 @@ def command(selector, opts={})
end.join('; ')
message << ').'
code = result['code'] || result['assertionCode']
if result['writeErrors']
code = result['writeErrors'].first['code']
end
raise ExecutionTimeout.new(message, code, result) if code == MAX_TIME_MS_CODE
raise OperationFailure.new(message, code, result)
end
Expand Down
12 changes: 12 additions & 0 deletions test/functional/collection_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,18 @@ def test_update_write_command_with_error
end
end

def test_error_code
coll = @db['test-error-code']
coll.ensure_index(BSON::OrderedHash[:x, Mongo::ASCENDING], { :unique => true })
coll.save(:x => 2)
begin
coll.save(:x => 2)
rescue => ex
assert_not_nil ex.error_code
end
coll.drop
end

def test_aggregation_cursor
return unless @version >= '2.5.1'
[10, 1000].each do |size|
Expand Down