def do_update(workitem=@workitem)

      r = update(workitem)

      fail ArgumentError.new("workitem is gone") if r == true
      return nil if r.nil?

      r.h['fields'] = workitem.fields
      do_update(r)
    end
def do_update(workitem=@workitem)

      r = update(workitem)

      fail ArgumentError.new("workitem is gone") if r == true
      return nil if r.nil?

      r.h['fields'] = workitem.fields
      do_update(r)
    end
Added for https://groups.google.com/forum/?fromgroups#!topic/openwferu-users/5bpV2yfKwM0

 Makes sure the workitem get saved to the storage. Fails if the workitem
 is already gone.
 Returns nil in case of success.