RFR: 8269886: Inaccurate error message for compressed hprof test [v4]

Lin Zang lzang at openjdk.java.net
Wed Jul 7 22:52:50 UTC 2021


On Wed, 7 Jul 2021 17:45:10 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> Lin Zang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fix the out.delete() logic
>
> There is still an inconsistency exception handling. For the outer bad MAGIC_NUMBER handling you have:
> 
> 186                 throw new IOException("Unrecognized magic number: " + i);
> 
> But the decompressed handling results in:
> 
> 178                         throw new IOException("Unrecognized magic number of decompressed data: " + i);
> 
> Which is caught and wrapped by:
> 
> 181                     throw new IOException("Cannot get stack trace from the compressed hprof file", e);
> 
> Also, nothing is wrapping exceptions thrown by the following code:
> 
> 143                 HprofReader r
> 144                     = new HprofReader(heapFile, in, dumpNumber,
> 145                                       true, debugLevel);
> 146                 r.read();
> 147                 return r.printStackTraces();
> 
> But any exception thrown by the following code is wrapped and rethrown at line 181:
> 
> 172                         HprofReader r
> 173                             = new HprofReader(deCompressedFile, in2, dumpNumber,
> 174                                               true, debugLevel);
> 175                         r.read();
> 176                         return r.printStackTraces();

Hi @plummercj,
    I just found that maybe there is no need to catch exception from `HprofReader` in this method, just keep it as what it originally did -  throw any exception from HprofReader directly. The information from HprofReader's exception is enough for root cause analysis in this case.
    I will test it and make the change.

BRs,
Lin

-------------

PR: https://git.openjdk.java.net/jdk/pull/4685


More information about the serviceability-dev mailing list