Hi Fairoz,

What I think you need to do is something like this:

        if (className.equals("java.lang.Thread")) {
            return !isJfrInitialized();
        }

...

    private static boolean isJfrInitialized() {
        try {
            Class<?> clazz = Class.forName("jdk.jfr.FlightRecorder");
            Method method = clazz.getDeclaredMethod("isInitialized", new Class[0]);
            return (boolean) method.invoke(null, new Object[0]);
        } catch (Exception e) {
            return false;
        }
    }

Erik

On 2020-06-01 12:30, Fairoz Matte wrote:
Hi Erik,

Thanks for your quick response,
Below is the updated webrev to handle if jfr module is not present
http://cr.openjdk.java.net/~fmatte/8243451/webrev.01/

Thanks,
Fairoz

-----Original Message-----
From: Erik Gahlin
Sent: Monday, June 1, 2020 2:31 PM
To: Fairoz Matte <fairoz.ma...@oracle.com>
Cc: serviceability-dev@openjdk.java.net
Subject: Re: RFR(s): 8243451: nsk.share.jdi.Debugee.isJFR_active() is incorrect
and corresponsing logic seems to be broken

Hi Fairoz,

If the test needs to run with builds where the JFR module is not present(?), you
need to do the check using reflection.

If not, looks good.

Erik

On 1 Jun 2020, at 10:27, Fairoz Matte <fairoz.ma...@oracle.com> wrote:

Hi,

Please review this small test infra change to identify at runtime the JFR is
active or not.
JBS - https://bugs.openjdk.java.net/browse/JDK-8243451
Webrev - http://cr.openjdk.java.net/~fmatte/8243451/webrev.00/

Thanks,
Fairoz

Reply via email to