<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><div><br></div><div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">On Jan 30, 2018, at 12:58 AM, Alan Bateman <</span><a href="mailto:Alan.Bateman@oracle.com" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Alan.Bateman@oracle.com</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">> wrote:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">The proposed fix is:<br><br><a href="http://cr.openjdk.java.net/~bpb/8166253/webrev.03/">http://cr.openjdk.java.net/~bpb/8166253/webrev.03/</a><<a href="http://cr.openjdk.java.net/%7Ebpb/8166253/webrev.03/">http://cr.openjdk.java.net/%7Ebpb/8166253/webrev.03/</a>><br><br></blockquote><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">I think it would be simpler if FileChannel maintained a set of the valid locks obtained via the channel, the the unlock can remove the lock from the set.</span></blockquote></div></div></div><div><br></div>I donít see how to do this. The FileLock already holds a reference to the Channel and if the converse were to obtain there would be circular references and things blocked from being collected. I did however come up with a simpler change which passes the new test:<div><br></div><div><a href="http://cr.openjdk.java.net/~bpb/8166253/webrev.04/">http://cr.openjdk.java.net/~bpb/8166253/webrev.04/</a></div><div><br></div><div>More comprehensive testing would need to be done if this looks better.<br><div><br><div><div>On Jan 30, 2018, at 2:16 AM, Daniel Fuchs <<a href="mailto:daniel.fuchs@oracle.com">daniel.fuchs@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Should fileKey be made final (AFAICS the field<br>is never mutated) and should isLockReleased<br>be volatile (appears that it could be mutated/read<br>from different threads)?</blockquote><br></div></div></div><div>Fixed in the above webrev.</div><div><br></div><div>Thanks,</div><div><br></div><div>Brian</div></body></html>