Subject: Backport JDK-8338938 The result of the combine method of SettingsControl is not used --- .../classes/jdk/jfr/internal/Control.java | 4 +-- .../jfr/api/settings/TestFilterEvents.java | 31 ++++++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/Control.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/Control.java index 339346bd6..fbc4d4c91 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/Control.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/Control.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -136,7 +136,7 @@ final class Control { @Override public String run() { try { - delegate.combine(Collections.unmodifiableSet(values)); + return delegate.combine(Collections.unmodifiableSet(values)); } catch (Throwable t) { // Prevent malicious user to propagate exception callback in the wrong context Logger.log(LogTag.JFR_SETTING, LogLevel.WARN, "Exception occurred when combining " + values + " for " + getClass()); diff --git a/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java b/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java index 42bfc3176..67619fb10 100644 --- a/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java +++ b/test/jdk/jdk/jfr/api/settings/TestFilterEvents.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -70,6 +70,7 @@ public class TestFilterEvents { continuous.enable(HTTPGetEvent.class).with("threadNames", "\"unused-threadname-1\""); assertEquals(0, makeProfilingRecording("\"unused-threadname-2\"")); assertEquals(1, makeProfilingRecording("\"" + Thread.currentThread().getName() + "\"")); + assertEquals(2, makeCombineControl()); continuous.close(); } @@ -94,4 +95,32 @@ public class TestFilterEvents { } } + private static int makeCombineControl() throws Exception { + try (Recording r1 = new Recording()) { + r1.enable(HTTPPostEvent.class).with("uriFilter", "https://www.example.com/list"); + r1.start(); + + try (Recording r2 = new Recording()) { + r2.enable(HTTPPostEvent.class).with("uriFilter", "https://www.example.com/get"); + r2.start(); + + HTTPPostEvent e1 = new HTTPPostEvent(); + e1.uri = "https://www.example.com/list"; + e1.commit(); + + HTTPPostEvent e2 = new HTTPPostEvent(); + e2.uri = "https://www.example.com/get"; + e2.commit(); + + HTTPPostEvent e3 = new HTTPPostEvent(); + e3.uri = "https://www.example.com/put"; + e3.commit(); + } + + r1.stop(); + + return Events.fromRecording(r1).size(); + } + } + } -- 2.33.0