Mercurial > hg > release > icedtea7-forest-2.4 > jdk
changeset 7006:dd5a285302c7
8019292: Better Attribute Value Exceptions
Reviewed-by: dfuchs, dholmes, ahgross
author | sjiang |
---|---|
date | Tue, 06 Aug 2013 16:04:14 +0200 |
parents | 1a2e92866dba |
children | cd066f29f36f |
files | src/share/classes/javax/management/BadAttributeValueExpException.java |
diffstat | 1 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/javax/management/BadAttributeValueExpException.java Wed Aug 07 12:24:24 2013 -0700 +++ b/src/share/classes/javax/management/BadAttributeValueExpException.java Tue Aug 06 16:04:14 2013 +0200 @@ -25,6 +25,9 @@ package javax.management; +import java.io.IOException; +import java.io.ObjectInputStream; + /** * Thrown when an invalid MBean attribute is passed to a query @@ -51,7 +54,7 @@ * @param val the inappropriate value. */ public BadAttributeValueExpException (Object val) { - this.val = val; + this.val = val == null ? null : val.toString(); } @@ -62,4 +65,25 @@ return "BadAttributeValueException: " + val; } + private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { + ObjectInputStream.GetField gf = ois.readFields(); + Object valObj = gf.get("val", null); + + if (valObj == null) { + val = null; + } else if (valObj instanceof String) { + val= valObj; + } else if (System.getSecurityManager() == null + || valObj instanceof Long + || valObj instanceof Integer + || valObj instanceof Float + || valObj instanceof Double + || valObj instanceof Byte + || valObj instanceof Short + || valObj instanceof Boolean) { + val = valObj.toString(); + } else { // the serialized object is from a version without JDK-8019292 fix + val = System.identityHashCode(valObj) + "@" + valObj.getClass().getName(); + } + } }