<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">The parts of the <font face="monospace, monospace">ReentrantReadWriteLock</font> holding no reference to it may lead to a situation where the <font face="monospace, monospace">ReentrantReadWriteLock</font> gets GC'ed while its read and write locks are still in use. This is alright unless the <font face="monospace, monospace">ReentrantReadWriteLock</font> is weakly cached as e.g., in Guava <font face="monospace, monospace">Striped</font>, where it has lead to the bug <a href="https://github.com/google/guava/issues/2477" target="_blank">https://github.com/google/<wbr>guava/issues/2477</a>.<br><br>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 <a href="https://github.com/google/guava/commit/957c1a5455508120d224f6d0d8f3bf8afa3630f0" target="_blank">https://github.com/<wbr>google/guava/commit/<wbr>957c1a5455508120d224f6d0d8f3bf<wbr>8afa3630f0</a>.<br><br><div><div>The cost benefit ratio seems to be good.</div></div>
</div><br></div></div>