[ 
https://issues.apache.org/jira/browse/OLINGO-395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14091682#comment-14091682
 ] 

fabio martelli commented on OLINGO-395:
---------------------------------------

Currently, if you perform a "valid" object create and then, before flush, you 
perform a delete then both requests will be sent.

I mean, the following code

Order order = getContainer().newEntityInstance(Order.class);
order.setOrderID(1105);
getContainer().getOrders().add(order); // this will generate a create
getContainer().getOrders().delete(order); // this will generate a delete
getContainer().flush();

will generate

POST <service>/Orders
DELETE <service>/Orders(1105)

Without the statement "getContainer().getOrders().add(order)" POST (create) 
request won't be generated but a single DELETE request will be sent.

Of course, in this case, if order 1105 doesn't exist, delete request will fail 
(may be, depending on service implementation?).

> Java client should support the deletion based on locally created entity
> -----------------------------------------------------------------------
>
>                 Key: OLINGO-395
>                 URL: https://issues.apache.org/jira/browse/OLINGO-395
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata4-client
>    Affects Versions: V4 4.0.0-beta-01
>            Reporter: Challen
>            Assignee: fabio martelli
>             Fix For: V4 4.0.0-beta-01
>
>
> this line of code will issue delete request as expected:
> container.getMe().getDrafts().getMessages().delete("msg3_tobedeleted_chh");
> =======================
> DELETE 
> https://xxxx.yyyy.com/EWS/OData/Me/Drafts/Messages('msg3_tobedeleted_chh') 
> HTTP/1.1
> =======================
> but this locally created entity should (1) also create a DELETE request with 
> the key that has been set, (2) or should immediately throw exception of 
> 'invalid DELETE on the unattached entity' :
> Message msg2 = <locally created entity>;
> msg2.setId("sdfafdsds_chh");
> manager.service.getMe().getDrafts().getMessages().delete(msg2);
> =======================
> EntityContext.attach(EntityInvocationHandler, AttachedEntityStatus) line: 107 
> EntitySetInvocationHandler<T,KEY,EC>.delete(S) line: 266      
> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
> available [native method]        
> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57    
> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43        
> Method.invoke(Object, Object...) line: 606    
> EntitySetInvocationHandler<T,KEY,EC>(AbstractInvocationHandler).invokeSelfMethod(Method,
>  Object[]) line: 88   
> EntitySetInvocationHandler<T,KEY,EC>.invoke(Object, Method, Object[]) line: 
> 91        
> $Proxy18.delete(EntityType) line: 
> =======================



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to