[
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)