]
Kabir Khan updated WFCORE-5037:
-------------------------------
Summary: Attributes of type Object with complex value types don't work if they are
a map (was: EJB Stats MBeans do not return method stats via JMX, but does via CLI)
Attributes of type Object with complex value types don't work if
they are a map
-------------------------------------------------------------------------------
Key: WFCORE-5037
URL:
https://issues.redhat.com/browse/WFCORE-5037
Project: WildFly Core
Issue Type: Bug
Components: JMX
Reporter: Kabir Khan
Priority: Major
This looks like a bug in that the JMX is not responding with the same as the CLI.
I am not sure if this is EJB subsystem issue or JMX or other.
Reproducer:
{code:java}
unzip -d $JBOSS_HOME/ reproducer-overlay.zip
./bin/standalone.sh
./run-test.sh {code}
From JMX, it is not seeing an array under methods, it is returning CompositeDataSupport
with 3 keys execution-time , invocations and wait-time all null. To match the CLI output,
methods would need to return an another CompositeDataSupport where the key is the method
name and its value is another CompositeDataSupport that has keys: execution-time
, invocations and wait-time with the correct values.
{code:java}
methods:
javax.management.openmbean.CompositeDataSupport(compositeType=javax.management.openmbean.CompositeType(name=Complex
type,items=((itemName=execution-time,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=invocations,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=wait-time,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)))),contents={execution-time=null,
invocations=null, wait-time=null})
methods.getCompositeType: javax.management.openmbean.CompositeType(name=Complex
type,items=((itemName=execution-time,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=invocations,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=wait-time,itemType=javax.management.openmbean.SimpleType(name=java.lang.String))))
key: execution-time value: null
key: invocations value: null
key: wait-time value: null {code}
{code:java}
[standalone@localhost:9990 /]
/deployment=ejb-client.jar/subsystem=ejb3/stateless-session-bean=Hello:read-resource(recursive=true,
include-runtime=true)
{
"outcome" => "success",
"result" => {
"component-class-name" => "Hello",
"declared-roles" => [],
"execution-time" => 5L,
"invocations" => 20L,
"methods" => {
"sayHello" => {
"execution-time" => 5L,
"invocations" => 10L,
"wait-time" => 36L
},
"goodbye" => {
"execution-time" => 0L,
"invocations" => 10L,
"wait-time" => 3L
}
}, {code}