On Wed, 22 Sep 2021 20:24:09 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>> The class `GzipRandomAccess` is used to parse heap dump file generated from >> `jcmd`/`jmap` tools when testing. >> It has the limitation that only gzip file which has "blocksize" header field >> could be sucessfully parsed. >> We think this class can be removed for 2 reasons: >> 1. The gzip heap dump file generated by `jhsdb` command does not contain the >> "blocksize" header field, so the GzipRandomAccess can not parse the >> generated file successfully. >> 2. The `GzipInputStream` could be used instead and then gziped heap dump >> file generated from both `jcmd`/`jmap` and `jhsdb jmap` could be parsed >> using same logic. >> Options > > test/lib/jdk/test/lib/hprof/parser/Reader.java line 99: > >> 97: // Possible gziped file, try decompress it and get the >> stack trace. >> 98: in.close(); >> 99: String deCompressedFile = "heapdump" + >> System.currentTimeMillis() + ".hprof"; > > Is it necessary to create a file with the decompressed output rather than > just stream the decompressed output to a FileInputStream? Hi @plummercj, Sorry for late response, I tried to avoid using the decompressed file, but it seems not simple as I expected. The reason is that at line 121, the HprofReader require the filename and it use this file to create a ReadBuffer internally, and a RandomAccessFile will be created using the filename. So I think may be it is not easy to make the change here, and maybe we could track it using a new bug if necessary, which may change the HprofReader implementation. What do you think? ------------- PR: https://git.openjdk.java.net/jdk/pull/5556