Pavel Mikhailovskii created JENA-1785:
-----------------------------------------

             Summary: A newly created node can remain invisible after commit
                 Key: JENA-1785
                 URL: https://issues.apache.org/jira/browse/JENA-1785
             Project: Apache Jena
          Issue Type: Bug
          Components: TDB2
    Affects Versions: Jena 3.13.1, Jena 3.13.0
            Reporter: Pavel Mikhailovskii
         Attachments: TestVisibilityOfChanges.java

A node once marked as non-present (_NodeTableCache.nonPresent_) can remain 
invisible even after it's created and the transaction is committed. That might 
happen because there's no guarantee that *all* newly created nodes will be 
eventually added to the "base" version _ThreadBufferingCache.baseCache_ of theĀ 
_node2id_Cache_ (as the _localCache_ has limited capacity) or removed from the 
"base" version of the _nonPresent_ cache (even if they were, there would still 
be a chance of re-adding them by some read transaction). 

The simplest fix is to get rid of the _nonPresent_ cache which seems to be of 
limited use anyway. A more sophisticated fix would involve keeping track of all 
newly allocated nodes and their removal from the base version of _nonPresent_ 
cache on transaction commit.

To reproduce: see the attached test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to