Skip to content

Commit 331adac

Browse files
committed
8361639: JFR: Incorrect top frame for I/O events
Reviewed-by: mgronlun Backport-of: 1a6cbe4
1 parent e989c1d commit 331adac

File tree

6 files changed

+402
-17
lines changed

6 files changed

+402
-17
lines changed

src/jdk.jfr/share/classes/jdk/jfr/events/FileReadEvent.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@
3838
@Label("File Read")
3939
@Category("Java Application")
4040
@Description("Reading data from a file")
41-
@StackFilter({"java.io.FileInputStream", "java.io.RandomAccessFile", "sun.nio.ch.FileChannelImpl"})
41+
@StackFilter({"java.nio.channels.FileChannel",
42+
"java.io.DataInputStream",
43+
"java.io.FileInputStream",
44+
"java.io.InputStream",
45+
"java.io.RandomAccessFile",
46+
"sun.nio.ch.ChannelInputStream",
47+
"sun.nio.ch.FileChannelImpl"})
4248
@Throttle
4349
public final class FileReadEvent extends MirrorEvent {
4450

src/jdk.jfr/share/classes/jdk/jfr/events/FileWriteEvent.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@
3838
@Label("File Write")
3939
@Category("Java Application")
4040
@Description("Writing data to a file")
41-
@StackFilter({"java.io.FileOutputStream", "java.io.RandomAccessFile", "sun.nio.ch.FileChannelImpl"})
41+
@StackFilter({"java.nio.channels.FileChannel",
42+
"java.io.DataOutputStream",
43+
"java.io.FileOutputStream",
44+
"java.io.OutputStream",
45+
"java.io.RandomAccessFile",
46+
"sun.nio.ch.ChannelOutputStream",
47+
"sun.nio.ch.FileChannelImpl"})
4248
@Throttle
4349
public final class FileWriteEvent extends MirrorEvent {
4450

src/jdk.jfr/share/classes/jdk/jfr/events/SocketReadEvent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
@Label("Socket Read")
4040
@Category("Java Application")
4141
@Description("Reading data from a socket")
42+
@StackFilter({"java.io.InputStream",
43+
"java.net.Socket$SocketInputStream",
44+
"java.nio.channels.SocketChannel",
45+
"sun.nio.ch.SocketInputStream"})
4246
@Throttle
4347
public final class SocketReadEvent extends MirrorEvent {
4448

src/jdk.jfr/share/classes/jdk/jfr/events/SocketWriteEvent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
@Label("Socket Write")
3939
@Category("Java Application")
4040
@Description("Writing data to a socket")
41+
@StackFilter({"java.io.OutputStream",
42+
"java.net.Socket$SocketOutputStream",
43+
"java.nio.channels.SocketChannel",
44+
"sun.nio.ch.SocketOutputStream"})
4145
@Throttle
4246
public final class SocketWriteEvent extends MirrorEvent {
4347

src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,6 @@ private boolean isExceptionEvent() {
9595
return false;
9696
}
9797

98-
private boolean isStaticCommit() {
99-
switch (getName()) {
100-
case Type.EVENT_NAME_PREFIX + "SocketRead" :
101-
case Type.EVENT_NAME_PREFIX + "SocketWrite" :
102-
case Type.EVENT_NAME_PREFIX + "FileRead" :
103-
case Type.EVENT_NAME_PREFIX + "FileWrite" :
104-
case Type.EVENT_NAME_PREFIX + "FileForce" :
105-
return true;
106-
}
107-
return false;
108-
}
109-
11098
private int determineStackTraceOffset() {
11199
if (isJDK) {
112100
// Order matters
@@ -116,9 +104,14 @@ private int determineStackTraceOffset() {
116104
if (getModification() == Modification.TRACING) {
117105
return 5;
118106
}
119-
if (isStaticCommit()) {
120-
return 3;
121-
}
107+
return switch (getName()) {
108+
case Type.EVENT_NAME_PREFIX + "SocketRead",
109+
Type.EVENT_NAME_PREFIX + "SocketWrite",
110+
Type.EVENT_NAME_PREFIX + "FileRead",
111+
Type.EVENT_NAME_PREFIX + "FileWrite" -> 6;
112+
case Type.EVENT_NAME_PREFIX + "FileForce" -> 5;
113+
default -> 3;
114+
};
122115
}
123116
return 3;
124117
}

0 commit comments

Comments
 (0)