On Wed, 29 Nov 2023 19:59:03 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> It looks like we can skip copying of `byte[]` in 
>> `BufferedInputStream.implTransferTo()` for `OutputStreams` residing in 
>> `java.io`.
>> 
>> See comment by @vlsi in 
>> https://github.com/openjdk/jdk/pull/10525/files#diff-e19c508d1bb6ee78697ecca66947c395adda0d9c49a85bf696e677ecbd977af1R612
>
> src/java.base/share/classes/java/io/BufferedInputStream.java line 647:
> 
>> 645:             if (avail > 0) {
>> 646:                 // trust all OutputStreams from java.io
>> 647:                 if (out.getClass().getPackageName() == 
>> BufferedInputStream.class.getPackageName()) {
> 
> I don't think Class::getPackageName documents that the returned String is 
> intern so I wonder if the == check will lead to questions and suggestions of 
> a bug. Classes with names starting with "java." can only be defined to the 
> boot or platform class loader (details in the ClassLoader API docs) so you 
> could just check if the package name equals "java.io".

Do we only want to trust java.io or anything starting with java.*?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16879#discussion_r1409947085

Reply via email to