83 lines
3.4 KiB
Diff
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
|
||
|
|
|