Stephen Mallette created TINKERPOP-3298:
-------------------------------------------

             Summary: TinkerTransactionGraph writes through an indexed lookup 
or a kept reference bypass transaction isolation
                 Key: TINKERPOP-3298
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3298
             Project: TinkerPop
          Issue Type: Bug
          Components: tinkergraph
    Affects Versions: 3.7.7
            Reporter: Stephen Mallette
            Assignee: Stephen Mallette


An element found through an index, or a reference kept across a commit, was the 
committed element itself, not a transaction copy. A write through it changed 
committed state directly:
- it was visible to other transactions before commit;
- rollback did not undo it;
- concurrent writers could fail with ArrayIndexOutOfBoundsException. 
{code}
graph.createIndex('name', Vertex.class)
g.addV().property('name','a').property('weight',1).iterate(); g.tx().commit()
g.V().has('name','a').property('weight',2).iterate(); g.tx().rollback()
g.V().has('name','a').values('weight')   // 2, expected 1

v = g.addV().property('weight',1).next(); g.tx().commit()
v.property('weight',2); g.tx().rollback()
g.V(v.id()).values('weight')              // 2, expected 1
{code} 




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to