diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | javax/management/ObjectName.java | 15 |
2 files changed, 14 insertions, 7 deletions
@@ -1,5 +1,11 @@ 2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + * javax/management/ObjectName.java: + (checkComponents()): Separate value and + key illegal characters to allow value wildcards. + +2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + * javax/management/ObjectName.java (parse(String)): Fix parsing where the wildcard is juxtaposed between other pairs. diff --git a/javax/management/ObjectName.java b/javax/management/ObjectName.java index f41740469..421b85a35 100644 --- a/javax/management/ObjectName.java +++ b/javax/management/ObjectName.java @@ -282,16 +282,17 @@ public class ObjectName if (domain.indexOf('\n') != -1) throw new MalformedObjectNameException("The domain includes a newline " + "character."); - char[] chars = new char[] { ':', ',', '*', '?', '=' }; + char[] keychars = new char[] { ':', ',', '*', '?', '=' }; + char[] valchars = new char[] { ':', ',', '=' }; Iterator i = properties.entrySet().iterator(); while (i.hasNext()) { Map.Entry entry = (Map.Entry) i.next(); String key = (String) entry.getKey(); - for (int a = 0; a < chars.length; ++a) - if (key.indexOf(chars[a]) != -1) + for (int a = 0; a < keychars.length; ++a) + if (key.indexOf(keychars[a]) != -1) throw new MalformedObjectNameException("A key contains a '" + - chars[a] + "' " + + keychars[a] + "' " + "character."); String value = (String) entry.getValue(); int quote = value.indexOf('"'); @@ -312,10 +313,10 @@ public class ObjectName "a '\"' character."); else { - for (int a = 0; a < chars.length; ++a) - if (value.indexOf(chars[a]) != -1) + for (int a = 0; a < valchars.length; ++a) + if (value.indexOf(valchars[a]) != -1) throw new MalformedObjectNameException("A value contains " + - "a '" + chars[a] + "' " + + "a '" + valchars[a] + "' " + "character."); } } |