RFR: 8273929: Remove GzipRandomAccess in heap dump test

Lin Zang lzang at openjdk.java.net
Sun Sep 26 08:11:04 UTC 2021


On Wed, 22 Sep 2021 20:24:09 GMT, Chris Plummer <cjplummer at 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


More information about the serviceability-dev mailing list