28 import java.io.IOException;
29 import java.io.ObjectInputStream;
30
31
32 /**
33 * Thrown when an invalid MBean attribute is passed to a query
34 * constructing method. This exception is used internally by JMX
35 * during the evaluation of a query. User code does not usually
36 * see it.
37 *
38 * @since 1.5
39 */
40 public class BadAttributeValueExpException extends Exception {
41
42
43 /* Serial version */
44 private static final long serialVersionUID = -3105272988410493376L;
45
46 /**
47 * @serial A string representation of the attribute that originated this exception.
48 * for example, the string value can be the return of {@code attribute.toString()}
49 */
50 @SuppressWarnings("serial") // See handling in constructor and readObject
51 private String val;
52
53 /**
54 * Constructs a BadAttributeValueExpException using the specified Object to
55 * create the toString() value.
56 *
57 * @param val the inappropriate value.
58 */
59 public BadAttributeValueExpException (Object val) {
60 this.val = val == null ? null : val.toString();
61 }
62
63
64 /**
65 * Returns the string representing the object.
66 */
67 public String toString() {
68 return "BadAttributeValueException: " + val;
69 }
70
71 private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
72 ObjectInputStream.GetField gf = ois.readFields();
73 Object valObj = gf.get("val", null);
74
75 if (valObj instanceof String || valObj == null) {
76 val = (String)valObj;
77 } else { // the serialized object is from a version without JDK-8019292 fix
78 val = System.identityHashCode(valObj) + "@" + valObj.getClass().getName();
79 }
80 }
81 }
|
28 import java.io.IOException;
29 import java.io.ObjectInputStream;
30
31
32 /**
33 * Thrown when an invalid MBean attribute is passed to a query
34 * constructing method. This exception is used internally by JMX
35 * during the evaluation of a query. User code does not usually
36 * see it.
37 *
38 * @since 1.5
39 */
40 public class BadAttributeValueExpException extends Exception {
41
42
43 /* Serial version */
44 private static final long serialVersionUID = -3105272988410493376L;
45
46 /**
47 * @serial A string representation of the attribute that originated this exception.
48 * For example, the string value can be the return of {@code attribute.toString()}.
49 */
50 @SuppressWarnings("serial") // See handling in constructor and readObject
51 private String val;
52
53 /**
54 * Constructs a BadAttributeValueExpException using the specified Object to
55 * create the toString() value.
56 *
57 * @param val the inappropriate value.
58 */
59 public BadAttributeValueExpException (Object val) {
60 this.val = val == null ? null : val.toString();
61 }
62
63
64 /**
65 * Returns the string representing the object.
66 */
67 public String toString() {
68 return "BadAttributeValueException: " + val;
69 }
70
71 /**
72 * Restores the fields of a BadAttributeValueExpException from the stream.
73 * If the 'val' field in the stream does not contain a string
74 * it is replaced with an implementation specific string representation
75 * of the value in the stream.
76 *
77 * @param ois an ObjectInput Stream
78 * @throws IOException thrown if an error occurs
79 * @throws ClassNotFoundException if a class can not be found
80 */
81 private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
82 ObjectInputStream.GetField gf = ois.readFields();
83 Object valObj = gf.get("val", null);
84
85 if (valObj instanceof String || valObj == null) {
86 val = (String)valObj;
87 } else { // the serialized object is from a version without JDK-8019292 fix
88 val = System.identityHashCode(valObj) + "@" + valObj.getClass().getName();
89 }
90 }
91 }
|