openjdk-21/Backport-JDK-8338938-The-result-of-the-combine-metho.patch
2025-02-21 15:44:10 +08:00

83 lines
3.4 KiB
Diff

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