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:
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.