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