Hi Lin,

On 6/07/2021 1:33 pm, Lin Zang wrote:
On Tue, 6 Jul 2021 02:55:37 GMT, Lin Zang <[email protected]> wrote:

The current implementation of hprof Reader for testing always prompts "Can not 
decompress the compressed hprof file" when there is error for testing gzipped heap 
dump. This is inaccurate if the gzipped file was decompressed successfully but the hprof 
file format is incorrect. So the inaccurate error message could be misleading for issue 
analysis.

This trivial PR refine the error message by simply print "Can not get stack trace 
from the compressed hprof file", the underlying exception from GZIPInputStream() or 
HprofReader() would give accurate error info.

Hi David,
     Thanks for review and comments.

The existing message is a generic message covering the general operation of the 
whole try block. It seems far more appropriate than your new message, which 
only seems to apply to the final step. ???

IMO, the whole method named getStack() is used to get the stack trace for the hprof file. 
 And the try block could throw exceptions by serveral reasons as decribed, so IMHO 
printing "Can not decompress the compressed hprof file" is not accurate. The 
proposed change is to print a generic error message that the getStack() fail when 
processing compressed hprof.  And the extra 'e' argument in the changed line would give 
detailed reason.

So may be change error message to "Can not process the compressed hprof file" 
is better? what do you think?

Yes that seems a good middle ground.

Alternatively, but more effort, have different try/catch blocks for the two sections of the code. The first to decompress and write out; the second to extract the stack traces. It isn't obvious that exceptions are possible from both parts.

Thanks,
David

BRs,
Lin

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

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

Reply via email to