Skip to content

Commit

Permalink
8249713: JFR: java.base events have incomplete stacktraces
Browse files Browse the repository at this point in the history
Reviewed-by: egahlin
  • Loading branch information
Markus Grönlund committed Jul 21, 2020
1 parent 8d97637 commit c7b074a
Showing 1 changed file with 25 additions and 4 deletions.
29 changes: 25 additions & 4 deletions src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java
Expand Up @@ -75,13 +75,34 @@ public final class PlatformEventType extends Type {
this.stackTraceOffset = stackTraceOffset(name, isJDK);
}

private static boolean isExceptionEvent(String name) {
switch (name) {
case Type.EVENT_NAME_PREFIX + "JavaErrorThrow" :
case Type.EVENT_NAME_PREFIX + "JavaExceptionThrow" :
return true;
}
return false;
}

private static boolean isUsingHandler(String name) {
switch (name) {
case Type.EVENT_NAME_PREFIX + "SocketRead" :
case Type.EVENT_NAME_PREFIX + "SocketWrite" :
case Type.EVENT_NAME_PREFIX + "FileRead" :
case Type.EVENT_NAME_PREFIX + "FileWrite" :
case Type.EVENT_NAME_PREFIX + "FileForce" :
return true;
}
return false;
}

private static int stackTraceOffset(String name, boolean isJDK) {
if (isJDK) {
if (name.equals(Type.EVENT_NAME_PREFIX + "JavaExceptionThrow")) {
return 5;
if (isExceptionEvent(name)) {
return 4;
}
if (name.equals(Type.EVENT_NAME_PREFIX + "JavaErrorThrow")) {
return 5;
if (isUsingHandler(name)) {
return 3;
}
}
return 4;
Expand Down

0 comments on commit c7b074a

Please sign in to comment.