This fixes StandardMBean and ObjectName. ChangeLog:
-- Andrew :) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint = F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
Index: javax/management/ObjectName.java =================================================================== RCS file: /sources/classpath/classpath/javax/management/ObjectName.java,v retrieving revision 1.18 diff -u -u -r1.18 ObjectName.java --- javax/management/ObjectName.java 7 May 2008 00:18:19 -0000 1.18 +++ javax/management/ObjectName.java 17 Jun 2008 16:49:13 -0000 @@ -306,17 +306,14 @@ "character."); char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' }; char[] valchars = new char[] { '\n', ':', ',', '=' }; - Iterator i = properties.entrySet().iterator(); - while (i.hasNext()) + for (Map.Entry<String,String> entry : properties.entrySet()) { - Map.Entry entry = (Map.Entry) i.next(); - String key = (String) entry.getKey(); for (int a = 0; a < keychars.length; ++a) - if (key.indexOf(keychars[a]) != -1) + if (entry.getKey().indexOf(keychars[a]) != -1) throw new MalformedObjectNameException("A key contains a '" + keychars[a] + "' " + "character."); - String value = (String) entry.getValue(); + String value = entry.getValue(); int quote = value.indexOf('"'); if (quote == 0) { @@ -389,15 +386,13 @@ if (isPropertyPattern()) { - Hashtable oProps = name.getKeyPropertyList(); - Iterator i = properties.entrySet().iterator(); - while (i.hasNext()) + Hashtable<String,String> oProps = name.getKeyPropertyList(); + for (Map.Entry<String,String> entry : properties.entrySet()) { - Map.Entry entry = (Map.Entry) i.next(); - String key = (String) entry.getKey(); + String key = entry.getKey(); if (!(oProps.containsKey(key))) return false; - String val = (String) entry.getValue(); + String val = entry.getValue(); if (!(val.equals(oProps.get(key)))) return false; } @@ -479,10 +474,10 @@ public String getCanonicalKeyPropertyListString() { CPStringBuilder builder = new CPStringBuilder(); - Iterator i = properties.entrySet().iterator(); + Iterator<Map.Entry<String,String>> i = properties.entrySet().iterator(); while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); + Map.Entry<String,String> entry = i.next(); builder.append(entry.getKey() + "=" + entry.getValue()); if (i.hasNext()) builder.append(","); Index: javax/management/StandardMBean.java =================================================================== RCS file: /sources/classpath/classpath/javax/management/StandardMBean.java,v retrieving revision 1.11 diff -u -u -r1.11 StandardMBean.java --- javax/management/StandardMBean.java 1 Nov 2007 20:06:57 -0000 1.11 +++ javax/management/StandardMBean.java 17 Jun 2008 16:49:14 -0000 @@ -569,8 +569,8 @@ if (info != null) return info; Method[] methods = iface.getMethods(); - Map attributes = new HashMap(); - List operations = new ArrayList(); + Map<String,Method[]> attributes = new HashMap<String,Method[]>(); + List<MBeanOperationInfo> operations = new ArrayList<MBeanOperationInfo>(); for (int a = 0; a < methods.length; ++a) { String name = methods[a].getName(); @@ -614,16 +614,14 @@ operations.add(new MBeanOperationInfo(methods[a].getName(), methods[a])); } - List attribs = new ArrayList(attributes.size()); - Iterator it = attributes.entrySet().iterator(); - while (it.hasNext()) + List<MBeanAttributeInfo> attribs = new ArrayList<MBeanAttributeInfo>(attributes.size()); + for (Map.Entry<String,Method[]> entry : attributes.entrySet()) { - Map.Entry entry = (Map.Entry) it.next(); - Method[] amethods = (Method[]) entry.getValue(); + Method[] amethods = entry.getValue(); try { - attribs.add(new MBeanAttributeInfo((String) entry.getKey(), - (String) entry.getKey(), + attribs.add(new MBeanAttributeInfo(entry.getKey(), + entry.getKey(), amethods[0], amethods[1])); } catch (IntrospectionException e) @@ -646,7 +644,7 @@ oldInfo.isWritable(), oldInfo.isIs()); } - Constructor[] cons = impl.getClass().getConstructors(); + Constructor<?>[] cons = impl.getClass().getConstructors(); MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length]; for (int a = 0; a < cinfo.length; ++a) { @@ -778,10 +776,10 @@ "Invocation of an attribute " + "method is disallowed."); ClassLoader loader = getClass().getClassLoader(); - Class[] sigTypes; + Class<?>[] sigTypes; if (signature != null) { - sigTypes = new Class[signature.length]; + sigTypes = new Class<?>[signature.length]; for (int a = 0; a < signature.length; ++a) try { @@ -892,7 +890,7 @@ public AttributeList setAttributes(AttributeList attributes) { AttributeList list = new AttributeList(attributes.size()); - Iterator it = attributes.iterator(); + Iterator<Object> it = attributes.iterator(); while (it.hasNext()) { try