1 23 24 29 30 31 package com.sun.enterprise.admin.jmx.remote.server.callers; 32 33 import java.util.logging.Logger ; 34 35 import javax.management.MBeanServerConnection ; 36 import javax.management.NotificationFilter ; 37 import javax.management.ObjectName ; 38 import javax.management.remote.message.MBeanServerRequestMessage; 39 import javax.management.remote.message.MBeanServerResponseMessage; 40 41 import com.sun.enterprise.admin.jmx.remote.notification.ListenerInfo; 42 import com.sun.enterprise.admin.jmx.remote.server.notification.ServerNotificationManager; 43 import com.sun.enterprise.admin.jmx.remote.DefaultConfiguration; 44 45 51 52 public class RemoveNotifLsnrObjNameFilterHandbackCaller extends AbstractMethodCaller { 53 54 private static final Logger logger = Logger.getLogger( 55 DefaultConfiguration.JMXCONNECTOR_LOGGER); 57 58 private ServerNotificationManager notifMgr = null; 59 60 public RemoveNotifLsnrObjNameFilterHandbackCaller(MBeanServerConnection mbsc, ServerNotificationManager mgr) { 61 super(mbsc); 62 METHOD_ID = MBeanServerRequestMessage.REMOVE_NOTIFICATION_LISTENER_OBJECTNAME_FILTER_HANDBACK; 63 this.notifMgr = mgr; 64 } 65 66 public MBeanServerResponseMessage call(MBeanServerRequestMessage request) { 67 Object result = null; 69 boolean isException = false; 70 71 ObjectName objname1 = (ObjectName ) request.getParams()[0]; 72 ObjectName objname2 = (ObjectName ) request.getParams()[1]; 73 NotificationFilter filter = (NotificationFilter ) request.getParams()[2]; 74 Object handback = request.getParams()[3]; 75 String lsnrid = (String ) request.getParams()[4]; 76 77 ListenerInfo info = notifMgr.removeObjNameNotificationListener(objname1, lsnrid); 78 if (info == null) 79 info = new ListenerInfo(null, filter, handback); 80 try { 81 mbsc.removeNotificationListener(objname1, objname2, info.filter, info.handback); 82 } catch (Exception e) { 83 result = e; 84 isException = true; 85 } 86 87 return ( new MBeanServerResponseMessage(METHOD_ID, result, isException) ); 88 } 89 } 90 | Popular Tags |