Hi,

we're experiencing strange grouping of method entry/exit events, is this a bug or a feature? We have one method entry request active with suspend policy 1 (suspend thread).
important: we also have one active step request (step over)

In jdk 11 we have one composite event for each event, which is what's expected: event set, policy:1, count:1 = {methodentryev...@java.lang.ClassLoader:522 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.ClassLoaders$AppClassLoader:170 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.System:375 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:579 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:591 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.ClassLoader:665 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.Object:50 in thread main} event set, policy:1, count:1 = {methodentryev...@java.util.concurrent.ConcurrentHashMap:1541 in thread main} event set, policy:1, count:1 = {methodentryev...@java.util.concurrent.ConcurrentHashMap:1011 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.String:1502 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.String:3266 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.StringLatin1:194 in thread main}
...

In jdk 18 they are grouped now!
event set, policy:1, count:17 = {methodentryev...@java.lang.ClassLoader:521 in thread main, MethodEntryEvent@jdk.internal.loader.ClassLoaders$AppClassLoader:180 in thread main, methodentryev...@java.lang.System:490 in thread main, methodentryev...@java.lang.System:198 in thread main, MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:639 in thread main, MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:651 in thread main, methodentryev...@java.lang.ClassLoader:664 in thread main, methodentryev...@java.lang.Object:44 in thread main, methodentryev...@java.util.concurrent.ConcurrentHashMap:1541 in thread main, methodentryev...@java.util.concurrent.ConcurrentHashMap:1011 in thread main, methodentryev...@java.lang.String:2336 in thread main, methodentryev...@java.lang.String:4546 in thread main, methodentryev...@java.lang.StringLatin1:192 in thread main, methodentryev...@java.util.concurrent.ConcurrentHashMap:697 in thread main, methodentryev...@java.util.concurrent.ConcurrentHashMap:760 in thread main, methodentryev...@jdk.internal.misc.Unsafe:2153 in thread main, methodentryev...@jdk.internal.misc.Unsafe.getReferenceVolatile(java.lang.Object, long)+-1 in thread main} event set, policy:1, count:4 = {methodentryev...@java.util.concurrent.ConcurrentHashMap$Node:631 in thread main, methodentryev...@java.lang.Object:44 in thread main, methodentryev...@java.util.concurrent.ConcurrentHashMap:765 in thread main, methodentryev...@jdk.internal.misc.Unsafe.compareAndSetReference(java.lang.Object, long, java.lang.Object, java.lang.Object)+-1 in thread main} event set, policy:1, count:2 = {methodentryev...@java.util.concurrent.ConcurrentHashMap:2326 in thread main, methodentryev...@jdk.internal.misc.Unsafe.compareAndSetLong(java.lang.Object, long, long, long)+-1 in thread main}

Which is really strange and breaks some login in IDEA debugger.

Without the active step request it works in jdk 18 as in jdk 11:
event set, policy:1, count:1 = {methodentryev...@java.lang.ClassLoader:521 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.ClassLoaders$AppClassLoader:180 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.System:490 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.System:198 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:639 in thread main} event set, policy:1, count:1 = {MethodEntryEvent@jdk.internal.loader.BuiltinClassLoader:651 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.ClassLoader:664 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.Object:44 in thread main} event set, policy:1, count:1 = {methodentryev...@java.util.concurrent.ConcurrentHashMap:1541 in thread main} event set, policy:1, count:1 = {methodentryev...@java.util.concurrent.ConcurrentHashMap:1011 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.String:2336 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.String:4546 in thread main} event set, policy:1, count:1 = {methodentryev...@java.lang.StringLatin1:192 in thread main}

Could anyone have a look please.
Thanks,
Egor

Reply via email to