# File lib/ruote/part/storage_participant.rb, line 377 def reserve(workitem_or_fei, owner) hwi = fetch(workitem_or_fei) fail ArgumentError.new("workitem not found") if hwi.nil? return nil if hwi['owner'] && hwi['owner'] != owner hwi['owner'] = owner r = @context.storage.put(hwi, :update_rev => true) fail ArgumentError.new("workitem is gone") if r == true fail ArgumentError.new("workitem got modified meanwhile") if r != nil Workitem.new(hwi) end