On Thu, 23 Mar 2023 19:27:04 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:
>> By default `BufferedInputStream` is constructed with internal buffer with >> capacity 8192. In some cases this buffer is never used, e.g. when we call >> `IS.readNBytes()` or `IS.readAllBytes()` (relying on `BIS.read1()`) or when >> `BufferedInputStream` is cascaded. > > Sergey Tsypanov has updated the pull request incrementally with one > additional commit since the last revision: > > Update src/java.base/share/classes/java/io/BufferedInputStream.java > > Co-authored-by: liach <7806504+li...@users.noreply.github.com> src/java.base/share/classes/java/io/BufferedInputStream.java line 183: > 181: if (buffer == EMPTY) { > 182: buf = buffer = new byte[size]; > 183: } You should probably use compareAndSet here too like in fill() - to handle the case of asynchoronous close. This patch makes me a bit nervous. I would advise to get feedback from @bplb and @AlanBateman . ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13150#discussion_r1146736923