anchor.diff:  								Etag2 == undefined ->
   							case catch ocs_rest:patch(Operations, offer(Product1)) of
   								{struct, _} = Product2  ->
  -									Product3 = offer(Product2),
  -									TS = erlang:system_time(millisecond),
  -									N = erlang:unique_integer([positive]),
  -									LM = {TS, N},
  -									Product4 = Product3#offer{last_modified = LM},
  -									ok = mnesia:write(Product4),
  -									{Product2, LM};
  +									case catch offer(Product2) of
  +										{struct, _} = Product3 ->
  +											TS = erlang:system_time(millisecond),
  +											N = erlang:unique_integer([positive]),
  +											LM = {TS, N},
  +											Product4 = Product3#offer{last_modified = LM},
  +											ok = mnesia:write(Product4),
  +											{Product2, LM};
  +									_ ->
  +										throw(bad_request)
  +									end;
   								_ ->
   									throw(bad_request)
   							end;
  
positive.code: 				{aborted, {throw, precondition_failed}} ->
  					{error, 412};
  				{aborted, _Reason} ->
  					{error, 500}
  			end
  	catch
  
negative.code: char_value([{"value", Value} | T], Acc)
  		when is_integer(Value); is_float(Value);
  		is_list(Value); is_boolean(Value) ->
  erlang:display({?MODULE, ?LINE, Value}),
  	char_value(T, Acc#char_value{value = Value});
  char_value([{"value", {struct, _} = Value} | T], Acc) ->
  erlang:display({?MODULE, ?LINE, Value}),
  	char_value(T, Acc#char_value{value = char_value_type(Value)});
  char_value([{"valueFrom", From} | T], Acc)
  		when is_integer(From); is_list(From) ->
  