amyroh 02/04/09 16:54:35 Modified: catalina/src/share/org/apache/catalina/mbeans MBeanFactory.java MBeanUtils.java Log: Add check for "null" string address as part of MBean name for connector since MBean nomenclature doesn't like empty string. In the case of address is null, it needs to check for string("null") address as part of MBean name for connector. Add null check for service property to avoid NPE. The "service" property for connector shouldn't be null, however, it's currently not set. Revision Changes Path 1.24 +12 -12 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java Index: MBeanFactory.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- MBeanFactory.java 5 Apr 2002 00:03:03 -0000 1.23 +++ MBeanFactory.java 9 Apr 2002 23:54:35 -0000 1.24 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v 1.23 2002/04/05 00:03:03 amyroh Exp $ - * $Revision: 1.23 $ - * $Date: 2002/04/05 00:03:03 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v 1.24 2002/04/09 23:54:35 amyroh Exp $ + * $Revision: 1.24 $ + * $Date: 2002/04/09 23:54:35 $ * * ==================================================================== * @@ -117,7 +117,7 @@ * <code>org.apache.catalina.core.StandardServer</code> component.</p> * * @author Amy Roh - * @version $Revision: 1.23 $ $Date: 2002/04/05 00:03:03 $ + * @version $Revision: 1.24 $ $Date: 2002/04/09 23:54:35 $ */ public class MBeanFactory extends BaseModelMBean { @@ -1107,31 +1107,31 @@ Service service = server.findService(serviceName); String port = oname.getKeyProperty("port"); String address = oname.getKeyProperty("address"); - if (address==null) { - address = ""; - } - + Connector conns[] = (Connector[]) service.findConnectors(); for (int i = 0; i < conns.length; i++) { Class cls = conns[i].getClass(); Method getAddrMeth = cls.getMethod("getAddress", null); Object addrObj = getAddrMeth.invoke(conns[i], null); - String connAddress = new String(); + String connAddress = null; if (addrObj != null) { connAddress = addrObj.toString(); - } + } Method getPortMeth = cls.getMethod("getPort", null); Object portObj = getPortMeth.invoke(conns[i], null); String connPort = new String(); if (portObj != null) { connPort = portObj.toString(); } - if (address.equals(connAddress) && port.equals(connPort)) { + if (((address.equals("null")) && (connAddress==null)) && port.equals(connPort)) { + service.removeConnector(conns[i]); + break; + } else if (address.equals(connAddress) && port.equals(connPort)) { // Remove this component from its parent component service.removeConnector(conns[i]); break; - } + } } } 1.32 +26 -14 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java Index: MBeanUtils.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- MBeanUtils.java 3 Apr 2002 22:22:57 -0000 1.31 +++ MBeanUtils.java 9 Apr 2002 23:54:35 -0000 1.32 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.31 2002/04/03 22:22:57 amyroh Exp $ - * $Revision: 1.31 $ - * $Date: 2002/04/03 22:22:57 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.32 2002/04/09 23:54:35 amyroh Exp $ + * $Revision: 1.32 $ + * $Date: 2002/04/09 23:54:35 $ * * ==================================================================== * @@ -109,7 +109,7 @@ * * @author Craig R. McClanahan * @author Amy Roh - * @version $Revision: 1.31 $ $Date: 2002/04/03 22:22:57 $ + * @version $Revision: 1.32 $ $Date: 2002/04/09 23:54:35 $ */ public class MBeanUtils { @@ -679,18 +679,24 @@ ObjectName name = null; if (connector instanceof HttpConnector) { HttpConnector httpConnector = (HttpConnector) connector; + Service service = httpConnector.getService(); + String serviceName = null; + if (service != null) + serviceName = service.getName(); name = new ObjectName(domain + ":type=Connector" + - ",service=" + - httpConnector.getService().getName() + + ",service=" + serviceName + ",port=" + httpConnector.getPort() + ",address=" + httpConnector.getAddress()); return (name); } else if (connector instanceof org.apache.catalina.connector.http10.HttpConnector) { org.apache.catalina.connector.http10.HttpConnector httpConnector = (org.apache.catalina.connector.http10.HttpConnector) connector; + Service service = httpConnector.getService(); + String serviceName = null; + if (service != null) + serviceName = service.getName(); name = new ObjectName(domain + ":type=Connector" + - ",service=" + - httpConnector.getService().getName() + + ",service=" + serviceName+ ",port=" + httpConnector.getPort() + ",address=" + httpConnector.getAddress()); return (name); @@ -701,15 +707,18 @@ PropertyUtils.getSimpleProperty(connector, "address"); Integer port = (Integer) PropertyUtils.getSimpleProperty(connector, "port"); + Service service = connector.getService(); + String serviceName = null; + if (service != null) + serviceName = service.getName(); name = new ObjectName(domain + ":type=Connector" + - ",service=" + - connector.getService().getName() + + ",service=" + serviceName + ",port=" + port + ",address=" + address); return (name); } catch (Exception e) { throw new MalformedObjectNameException - ("Cannot create object name for " + connector); + ("Cannot create object name for " + connector+e); } } else if ("org.apache.coyote.tomcat4.CoyoteConnector".equals (connector.getClass().getName())) { @@ -718,15 +727,18 @@ PropertyUtils.getSimpleProperty(connector, "address"); Integer port = (Integer) PropertyUtils.getSimpleProperty(connector, "port"); + Service service = connector.getService(); + String serviceName = null; + if (service != null) + serviceName = service.getName(); name = new ObjectName(domain + ":type=Connector" + - ",service=" + - connector.getService().getName() + + ",service=" + serviceName + ",port=" + port + ",address=" + address); return (name); } catch (Exception e) { throw new MalformedObjectNameException - ("Cannot create object name for " + connector); + ("Cannot create object name for " + connector+e); } } else { throw new MalformedObjectNameException
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>