-
Enhancement
-
Resolution: Done
-
Major
-
4.0.16
-
None
The sample ThreadHistoryMonitorHelper which helps to track thread history to investigate race conditions do not work properly in JDK11. The helper provides a way to work with the data via JMX. For that purpose the helper is declared as MXBean which fails to be registered - started on JDK11 with exception[1].
Plus the history monitor helper and the script works only with Runnable and it should consider the Callable as well.
[1]
INFO [stdout] (main) Installed rule using default helper : Register ThreadHistoryMonitorHelper mbean ERROR [stderr] (main) javax.management.NotCompliantMBeanException: org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean: Method org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean.getCreateEvents has parameter or return type that cannot be translated into an open type ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.Introspector.throwException(Introspector.java:467) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:120) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.analyzer(MBeanAnalyzer.java:102) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.getAnalyzer(MXBeanIntrospector.java:74) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(MBeanIntrospector.java:192) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanSupport.<init>(MBeanSupport.java:138) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MXBeanSupport.<init>(MXBeanSupport.java:66) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:203) ERROR [stderr] (main) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:888) ERROR [stderr] (main) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522) ERROR [stderr] (main) at org.jboss.as.jmx@17.0.0.Beta1//org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.registerMBean(PluggableMBeanServerImpl.java:1518) ERROR [stderr] (main) at org.jboss.as.jmx@17.0.0.Beta1//org.jboss.as.jmx.PluggableMBeanServerImpl.registerMBean(PluggableMBeanServerImpl.java:874) ERROR [stderr] (main) at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper.registerHelperMBean(ThreadHistoryMonitorHelper.java:105) ERROR [stderr] (main) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ERROR [stderr] (main) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ERROR [stderr] (main) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ERROR [stderr] (main) at java.base/java.lang.reflect.Method.invoke(Method.java:566) ERROR [stderr] (main) at org.jboss.byteman.rule.expression.MethodExpression.interpret(MethodExpression.java:366) ERROR [stderr] (main) at org.jboss.byteman.rule.Action.interpret(Action.java:144) ERROR [stderr] (main) at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.fire(ThreadMonitorHistory.btm) ERROR [stderr] (main) at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.execute0(ThreadMonitorHistory.btm) ERROR [stderr] (main) at org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelper_HelperAdapter_Interpreted_30.execute(ThreadMonitorHistory.btm) ERROR [stderr] (main) at org.jboss.byteman.rule.Rule.execute(Rule.java:809) ERROR [stderr] (main) at org.jboss.byteman.rule.Rule.execute(Rule.java:778) ERROR [stderr] (main) at org.jboss.modules.Main.main(Main.java:621) ERROR [stderr] (main) Caused by: java.lang.IllegalArgumentException: Method org.jboss.byteman.sample.helper.ThreadHistoryMonitorHelperMXBean.getCreateEvents has parameter or return type that cannot be translated into an open type ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:46) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:84) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:54) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.initMaps(MBeanAnalyzer.java:137) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:118) ERROR [stderr] (main) ... 24 more ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitorEvent[] ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:212) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:41) ERROR [stderr] (main) ... 28 more ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitorEvent ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeArrayOrCollectionMapping(DefaultMXBeanMappingFactory.java:319) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:289) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259) ERROR [stderr] (main) ... 30 more ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Cannot convert type: org.jboss.byteman.sample.helper.ThreadMonitored ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException(DefaultMXBeanMappingFactory.java:1445) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:261) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeCompositeMapping(DefaultMXBeanMappingFactory.java:473) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:294) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259) ERROR [stderr] (main) ... 33 more ERROR [stderr] (main) Caused by: javax.management.openmbean.OpenDataException: Recursive data structure, including org.jboss.byteman.sample.helper.ThreadMonitored ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:248) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeCompositeMapping(DefaultMXBeanMappingFactory.java:473) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.makeMapping(DefaultMXBeanMappingFactory.java:294) ERROR [stderr] (main) at java.management/com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.mappingForType(DefaultMXBeanMappingFactory.java:259) ERROR [stderr] (main) ... 36 more