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

stephen mallette commented on TINKERPOP3-297:
---------------------------------------------

Deprecated {{Element.Exceptions.elementAlreadyRemoved}} and removed test 
enforcement for consistency in this area as it is clear that maintaining 
consistency across all the graph implementations is too difficult given the 
great disparity in how "deleted elements" are treated.  It also introduce a 
fair bit of complexity to the core implementations to maintain the notion of 
"deleted", so falling back to rely on each graph's sensibilities in this area 
should simplify code a fair deal.  As it stand now, implementers may choose to 
deal with access to deleted elements in whatever fashion best suits their graph.

This issue is "breaking" because of the removal of the following tests (which 
may affect implementer's {{@OptOut}} annotations:

* {{VertexPropertyTest.ExceptionConsistencyWhenVertexPropertyRemovedTest}}
* {{EdgeTest.ExceptionConsistencyWhenVertexPropertyRemovedTest}}
* {{VertexTest.ExceptionConsistencyWhenVertexRemovedTest}}

It is also considered "breaking" In that implementers should review usage of 
{{Element.Exceptions.elementAlreadyRemoved}}.  If the above tests were passing 
and they wish to keep this capability then they should consider throwing their 
own exception as this method will be removed at some point in the future.  
Alternatively, they could simply remove code that "tracks" deletion and treat 
it in some other way.

For {{Neo4jGraph}} this meant completely falling back to using Neo4j handling 
of "deletion" - there are no checks to try to wrap up their internal handling 
of such things.  For {{TinkerGraph}} this meant maintaining state of deletion 
and using it consistently to prevent mutation of a deleted element.

> Ensure Consistent Behavior Over Deleted Elements
> ------------------------------------------------
>
>                 Key: TINKERPOP3-297
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-297
>             Project: TinkerPop 3
>          Issue Type: Improvement
>          Components: test-suite
>    Affects Versions: 3.0.1-incubating
>            Reporter: stephen mallette
>            Assignee: stephen mallette
>              Labels: breaking
>             Fix For: 3.1.0-incubating
>
>
> Better define the expected behavior when accessing deleted elements.  Return 
> empty? How about the label? What about other attributes like in/out vertices, 
> etc?  Throw exceptions?
> from [~mbroecheler]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to