RFR [9] 8138978: Examine usages of sun.misc.IOUtils (original) (raw)
Chris Hegarty chris.hegarty at oracle.com
Wed Oct 7 18:19:17 UTC 2015
- Previous message: RFR(xxs): 8139037: [aix] Crash in ResolverConfigurationImpl.c - pointer shearing
- Next message: RFR [9] 8138978: Examine usages of sun.misc.IOUtils
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
This primary motivation behind this bug [1] is the clearing out of sun.misc, in preparation for JEP 260 [2].
sun.misc.IOUtils is a JDK internal convenience utility class that provides a single method that offers bulk blocking InputStream read semantics. In 9, java.io.InputStream has been retrofitted with two methods that provide similar, but not quite the same, functionality, readNBytes and readAllBytes, see JDK-8080835 [3].
There are a number of places where IOUtils can be replaced with the appropriate supported API, readNBytes or readAllBytes.
There are a number of places, mainly in the security implementation, that required to read a specific number of bytes ( not to end of stream ), where it is preferable to not preallocate the byte[] and allow it to "grow" lazily, to be defensive against protocol errors. These cases cannot use read[N|All]Bytes, so it makes sense to retain IOUtils but locate it in a package, sun.security.util, that makes it clear who its primary consumer is.
http://cr.openjdk.java.net/~chegar/8138978/webrev.00/jdk/ http://cr.openjdk.java.net/~chegar/8138978/webrev.00/hotspot/
-Chris.
[1] https://bugs.openjdk.java.net/browse/JDK-8138978 [2] https://bugs.openjdk.java.net/browse/JDK-8132928 [3] https://bugs.openjdk.java.net/browse/JDK-8080835
- Previous message: RFR(xxs): 8139037: [aix] Crash in ResolverConfigurationImpl.c - pointer shearing
- Next message: RFR [9] 8138978: Examine usages of sun.misc.IOUtils
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]