[concurrency-interest] The parts of the ReentrantReadWriteLock hold no reference to it

Martin Buchholz martinrb at google.com
Tue Oct 17 17:11:09 EDT 2017


Thanks!  I filed bug
https://bugs.openjdk.java.net/browse/JDK-8189598

On Tue, Oct 17, 2017 at 2:02 PM, Martin Grajcar <maaartinus at gmail.com>
wrote:

> The parts of the ReentrantReadWriteLock holding no reference to it may
> lead to a situation where the ReentrantReadWriteLock gets GC'ed while its
> read and write locks are still in use. This is alright unless the
> ReentrantReadWriteLock is weakly cached as e.g., in Guava Striped, where
> it has lead to the bug https://github.com/google/guava/issues/2477.
>
> I'd suggest to add a reference to the enclosing class, e.g., by removing
> the static modifier. As all these objects are lightweight and not meant to
> have millions of instances, the cost is negligible. The advantage is
> decreased chance of buggy user code and avoiding lengthy workarounds like
> https://github.com/google/guava/commit/957c1a5455508120
> d224f6d0d8f3bf8afa3630f0.
>
> The cost benefit ratio seems to be good.
>
>
> _______________________________________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20171017/28452a6f/attachment.html>


More information about the Concurrency-interest mailing list