Applied - thanks.

Rational the startRead can increment the counter in the policy and
then throw a concurrent modification exception, this needs to be
matched in that case by the finishRead()

BTW

TDB 0.9 supports transactions. This sort of CCME is not possible when using transactions which support multiple readers *and* a single writer concurrently as well as readers from previous generations of database, which see a consistent view. It's isolation level "serialized".

("is not" == "should not" of course, but judging by your other emails you are not using transactions).

        Andy

On 16/08/12 06:28, Jeremy Carroll wrote:
OLD:
  @Override
     public Iterator<Tuple<NodeId>> find(NodeId... ids)
     {
         Tuple<NodeId> tuple = Tuple.create(ids) ;
         startRead() ;
         try {
             return find(tuple) ; // **public call
         } finally { finishRead() ; }
     }


SHOULD BE:

   @Override
     public Iterator<Tuple<NodeId>> find(NodeId... ids)
     {
         Tuple<NodeId> tuple = Tuple.create(ids) ;
         try {
             startRead() ;
             return find(tuple) ; // **public call
         } finally { finishRead() ; }
     }


Lines 151 to 159.
Rational the startRead can increment the counter in the policy and then
throw a concurrent modification exception, this needs to be matched in
that case by the finishRead()

Jeremy

Reply via email to