basho/riak-ruby-client — pull request #123 by bkerley (2013-09-16 13:52:01+00:00)
Title: RObject#links is an Array, not a Set, if the object is returned by Bucket#get_or_new()

In riak-client 1.4.1, the behavior of RObject#links is different based on two scenarios. If you do Bucket#get_or_new() and that key does not exist, links is a Set (which makes sense and is the intended behavior I believe).

If you do Bucket#get_or_new() and the key did exist and the method is just returning that stored document, #links is an array. This inadvertently lets you add the same link more than one time to a document, then store it again.

I am using ruby 2.0.0p195 and riak-client 1.4.1 and can re-create this every time.