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

Reply via email to