Discussion about fixing deprecation in jdk.hotspot.agent
Poonam Parhar
poonam.bajaj at oracle.com
Tue Mar 31 16:19:23 UTC 2020
Hello Coleen,
Does the removal of this code only impact the 'reattach' functionality,
and it does not affect any commands available in 'clhsdb' once it is
attached to a core file? If that's true, then I think it should be okay
to remove this code.
Thanks,
Poonam
On 3/31/20 5:34 AM, coleen.phillimore at oracle.com wrote:
>
> To answer my own question, this functionality is used to allow
> detach/reattach from {cl}hsdb. Which seems to work on linux but not
> windows with this code removed.
>
> The next question is whether this is useful functionality to justify
> all this code (900+ and this new code that Magnus has added). Can't
> you just exit and restart the clhsdb process on the core file or process?
>
> For the record, this is me playing with python to remove this code.
>
> http://cr.openjdk.java.net/~coleenp/2020/01/webrev/index.html
>
> Thanks,
> Coleen
>
> On 3/30/20 3:04 PM, coleen.phillimore at oracle.com wrote:
>>
>> I was wondering why this is needed when debugging a core file, which
>> is the key thing we need the SA for:
>>
>> /** This is used by both the debugger and any runtime system. It is
>> the basic mechanism by which classes which mimic underlying VM
>> functionality cause themselves to be initialized. The given
>> observer will be notified (with arguments (null, null)) when the
>> VM is re-initialized, as well as when it registers itself with
>> the VM. */
>> public static void registerVMInitializedObserver(Observer o) {
>> vmInitializedObservers.add(o);
>> o.update(null, null);
>> }
>>
>> It seems like if it isn't needed, we shouldn't add these classes and
>> remove their use.
>>
>> Coleen
>>
>> On 3/30/20 8:14 AM, Magnus Ihse Bursie wrote:
>>> No opinions on this?
>>>
>>> /Magnus
>>>
>>> On 2020-03-25 23:34, Magnus Ihse Bursie wrote:
>>>> Hi everyone,
>>>>
>>>> As a follow-up to the ongoing review for JDK-8241618, I have also
>>>> looked at fixing the deprecation warnings in jdk.hotspot.agent.
>>>> These fall in three broad categories:
>>>>
>>>> * Deprecation of the boxing type constructors (e.g. "new
>>>> Integer(42)").
>>>>
>>>> * Deprecation of java.util.Observer and Observable.
>>>>
>>>> * The rest (mostly Class.newInstance(), and a few number of other
>>>> odd deprecations)
>>>>
>>>> The first category is trivial to fix. The last category need some
>>>> special discussion. But the overwhelming majority of deprecation
>>>> warnings come from the use of Observer and Observable. This really
>>>> dwarfs anything else, and needs to be handled first, otherwise it's
>>>> hard to even spot the other issues.
>>>>
>>>> My analysis of the situation is that the deprecation of Observer
>>>> and Observable seems a bit harsh, from the PoV of
>>>> jdk.hotspot.agent. Sure, it might be limited, but I think it does
>>>> exactly what is needed here. So the migration suggested in
>>>> Observable (java.beans or java.util.concurrent) seems overkill. If
>>>> there are genuine threading issues at play here, this assumption
>>>> might be wrong, and then maybe going the j.u.c. route is correct.
>>>>
>>>> But if that's not, the main goal should be to stay with the current
>>>> implementation. One way to do this is to sprinkle the code with
>>>> @SuppressWarning. But I think a better way would be to just
>>>> implement our own Observer and Observable. After all, the classes
>>>> are trivial.
>>>>
>>>> I've made a mock-up of this solution, were I just copied the
>>>> java.util.Observer and Observable, and removed the deprecation
>>>> annotations. The only thing needed for the rest of the code is to
>>>> make sure we import these; I've done this for three arbitrarily
>>>> selected classes just to show what the change would typically look
>>>> like. Here's the mock-up:
>>>>
>>>> http://cr.openjdk.java.net/~ihse/hotspot-agent-observer/webrev.01
>>>>
>>>> Let me know what you think.
>>>>
>>>> /Magnus
>>>
>>
>
More information about the serviceability-dev
mailing list