RestComm / jain-slee

The World's #1 Open Source JAIN-SLEE (JSLEE) 1.1 Implementation
http://www.restcomm.com/
GNU Affero General Public License v3.0
24 stars 50 forks source link

ActivityContextDetailsPanel wrong condition check to check if Nullactivity #116

Closed duyanh030 closed 6 years ago

duyanh030 commented 7 years ago

https://github.com/RestComm/jain-slee/blob/master/tools/slee-management-console/war/src/main/java/org/mobicents/slee/container/management/console/client/activity/ActivityContextDetailsPanel.java#L50

the condition should be check if equal "org.mobicents.slee.runtime.facilities.nullactivity.NullActivityImpl" instead "org.mobicents.slee.runtime.facilities.NullActivityImpl"

Also I got the exception when click "End this activity" at http://localhost:8080/slee-management-console

23:09:33:793 [ERROR] Could not kill activity Context [6a0b61d4:15ce00388ea:-7ffb]. Reason: javax.management.ReflectionException:Signature mismatch for operation endActivity: (java.lang.String) should be (org.mobicents.slee.container.activity.ActivityContextHandle) com.sun.jmx.mbeanserver.PerInterface.noSuchMethod(PerInterface.java:170) com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:135) com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:1503) org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:724) org.jboss.as.jmx.BlockingNotificationMBeanServer.invoke(BlockingNotificationMBeanServer.java:168) org.jboss.remotingjmx.protocol.v2.ServerProxy$InvokeHandler.handle(ServerProxy.java:950) org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1$1.run(ServerCommon.java:153) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor$1.run(ServerInterceptorFactory.java:75) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor$1.run(ServerInterceptorFactory.java:70) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAs(Subject.java:422) org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:149) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor.handleEvent(ServerInterceptorFactory.java:70) org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1.run(ServerCommon.java:149) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodException:endActivity(java.lang.String) com.sun.jmx.mbeanserver.PerInterface.noSuchMethod(PerInterface.java:169) com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:135) com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:1503) org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:724) org.jboss.as.jmx.BlockingNotificationMBeanServer.invoke(BlockingNotificationMBeanServer.java:168) org.jboss.remotingjmx.protocol.v2.ServerProxy$InvokeHandler.handle(ServerProxy.java:950) org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1$1.run(ServerCommon.java:153) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor$1.run(ServerInterceptorFactory.java:75) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor$1.run(ServerInterceptorFactory.java:70) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAs(Subject.java:422) org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:149) org.jboss.as.jmx.ServerInterceptorFactory$Interceptor.handleEvent(ServerInterceptorFactory.java:70) org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1.run(ServerCommon.java:149) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) , null

jaimecasero commented 7 years ago

It seems there are two things;

  1. How the console evaluates if activity is null to render the "End" button. Here it seems the class name is bad (probably after some refactoring). Better to use class comparator, and import the class,so any refactoring is inmediately visible.
  2. How the button will invoke MBean :there is clearly a signature mismatch javax.management.ReflectionException:Signature mismatch for operation endActivity: (java.lang.String) should be (org.mobicents.slee.container.activity.ActivityContextHandle. Here the web console should store the reference to the activtiy boject provided in previous query method, and use it later to invoke the endActivity operation.
satanatoly commented 6 years ago

fixed. Closing