[jdk10] RFR for 'JDK-8177721: Improve diagnostics in sun.management.Agent#startAgent()
David Holmes
david.holmes at oracle.com
Wed Apr 26 21:04:47 UTC 2017
Hi Shafi,
On 26/04/2017 6:15 PM, Shafi Ahmad wrote:
> Hi,
>
> Thank you Poonam, David and Daniel for the review and suggestion.
>
> Please find updated webrev - http://cr.openjdk.java.net/~shshahma/8177721/webrev.01/
That looks okay to me - thanks.
But I'm wondering if we need the same change in startRemoteManagementAgent:
395 } catch (AgentConfigurationError err) {
396 error(err.getError(), err.getParams());
and if we do then I think the:
668 public static void error(String key, String[] params) {
variant becomes dead code.
Thanks,
David
> Regards,
> Shafi
>
>> -----Original Message-----
>> From: Poonam Parhar
>> Sent: Tuesday, April 25, 2017 1:40 AM
>> To: Daniel Fuchs <daniel.fuchs at oracle.com>; David Holmes
>> <david.holmes at oracle.com>; Shafi Ahmad <shafi.s.ahmad at oracle.com>;
>> serviceability-dev at openjdk.java.net; hotspot-runtime-
>> dev at openjdk.java.net
>> Subject: RE: [jdk10] RFR for 'JDK-8177721: Improve diagnostics in
>> sun.management.Agent#startAgent()
>>
>> Hello Shafi,
>>
>> You could do something like this:
>>
>> + public static void error(AgentConfigurationError e) {
>> + String keyText = getText(e.getError());
>> + String params = e.getParams();
>> +
>> + System.err.print(getText("agent.err.error") + ": " + keyText);
>> +
>> + if (params != null && params.length != 0) {
>> + StringBuffer message = new StringBuffer(params[0]);
>> + for (int i = 1; i < params.length; i++) {
>> + message.append(" " + params[i]);
>> + }
>> + System.err.println(": " + message);
>> + }
>> + e.printStackTrace();
>> + throw new RuntimeException(e);
>> + }
>>
>> This error() variant first prints the 'error' and 'params' of the
>> AgentConfigurationError and then prints the complete stack trace (including
>> the cause).
>>
>> Daniel,
>>
>> Originally, if the stack trace was intentionally ignored to keep the error
>> message short, then I think just printing the 'cause' instead of complete stack
>> trace would also be sufficient in getting to the cause of the error here.
>>
>> Instead of
>>
>> e.printStackTrace();
>>
>> we can just do:
>>
>> System.err.println("Caused by: " + e.getCause());
>>
>>
>> Thanks,
>> Poonam
>>
>>
>>> -----Original Message-----
>>> From: Daniel Fuchs
>>> Sent: Thursday, April 13, 2017 2:25 AM
>>> To: David Holmes; Shafi Ahmad; serviceability-dev at openjdk.java.net
>>> Subject: Re: [jdk10] RFR for 'JDK-8177721: Improve diagnostics in
>>> sun.management.Agent#startAgent()
>>>
>>> On 13/04/2017 02:15, David Holmes wrote:
>>>> Overall the exception management in this code looks like it predate
>>>> the existence of an "exception cause" and should probably be updated
>>>> to utilize that more effectively.
>>>
>>> Hi David,
>>>
>>> I think the original idea was to display a localized message to the
>>> end user - and not frighten him with a big unlocalized stack trace.
>>>
>>> But I otherwise agree with your suggestion.
>>>
>>> best regards,
>>>
>>> -- daniel
More information about the serviceability-dev
mailing list