Hi Magnus,
This looks okay to me unless there is a better solution.
Thanks,
Serguei
On 4/14/20 04:04, Magnus Ihse Bursie wrote:
As a first step towards fixing deprecation warnings in SA, all the
references (200+) to the deprecated java.util.Observer and Observable
needs to be fixed, otherwise all other changes will drown in this one.
This solution is the result of the preceding discussions in
serviceability-dev. That means that most of the change consists of
adding an explicit import like this:
import sun.jvm.hotspot.utilities.Observable;
import sun.jvm.hotspot.utilities.Observer;
to override the general java.util.* import that was already present in
all (or almost all) files, and make
sun.jvm.hotspot.utilities.Observable and Observer extend the java.util
versions but with deprecation warnings disabled.
It turned out however, that this simplest approach did not work fully.
Since the interface java.util.Observer had the single method "void
update(java.util.Observable o, Object arg)" it did not help to create
a new interface sun.jvm.hotspot.utilities.Observer that extended
java.util.Observer. I did not observe this issue in my PoC webrev that
I posted during the discussion. :-(
Instead, for Observer, I had just created a new interface with the
same method, but that uses sun.jvm.hotspot.utilities.Observable
instead of java.util.Observable.
The end effect is the same -- the only change needed to most files is
an added import, we get rid of the deprecation warnings, and we did
not have to copy any significant amount of code from java.util.
I now hope this is acceptable by all.
Bug: https://bugs.openjdk.java.net/browse/JDK-8242629
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8242629-fix-SA-Observer/webrev.01
(When reading the patch, I recommend looking at the patch file
http://cr.openjdk.java.net/~ihse/JDK-8242629-fix-SA-Observer/webrev.01/open.patch
instead of individually checking the files in the webrev.)
/Magnus