Open aleksandrserbin opened 4 years ago
There is a race, when Store is closed, but there are still iterators somewhere, which may use it. In the concurrent environment, get() call can pass assertNotClosed assertion, but acquire the lock after Store::close completed.
get()
assertNotClosed
Store::close
Probably linked to https://github.com/jankotek/mapdb/issues/892 as well, if there is a scenario with concurrent close and get.
close
get
Note: this will still lead to exception, however it will be an IllegalAccessError, rather then NullPointerException
IllegalAccessError
NullPointerException
There is a race, when Store is closed, but there are still iterators somewhere, which may use it. In the concurrent environment,
get()
call can passassertNotClosed
assertion, but acquire the lock afterStore::close
completed.Probably linked to https://github.com/jankotek/mapdb/issues/892 as well, if there is a scenario with concurrent
close
andget
.Note: this will still lead to exception, however it will be an
IllegalAccessError
, rather thenNullPointerException