RFR 8232622: Technical debt in BadAttributeValueExpException

Roger Riggs Roger.Riggs at oracle.com
Thu Feb 13 15:52:33 UTC 2020


Please review a minor cleanup to remove code long since unnecessary.
The type of the BadAttributeValueExpException argument is String and
if it is not a string in the serialized stream, a suitable replacement 
is created.

Issue: https://bugs.openjdk.java.net/browse/JDK-8232622

Patch:

diff --git 
a/src/java.management/share/classes/javax/management/BadAttributeValueExpException.java 
b/src/java.management/share/classes/javax/management/BadAttributeValueExpException.java
--- 
a/src/java.management/share/classes/javax/management/BadAttributeValueExpException.java
+++ 
b/src/java.management/share/classes/javax/management/BadAttributeValueExpException.java
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights 
reserved.
+ * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights 
reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@ public class BadAttributeValueExpExcepti
       * for example, the string value can be the return of {@code 
attribute.toString()}
       */
      @SuppressWarnings("serial") // See handling in constructor and 
readObject
-    private Object val;
+    private String val;

      /**
       * Constructs a BadAttributeValueExpException using the specified 
Object to
@@ -72,19 +72,8 @@ public class BadAttributeValueExpExcepti
          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();
+        if (valObj instanceof String || valObj == null) {
+            val = (String)valObj;
          } else { // the serialized object is from a version without 
JDK-8019292 fix
              val = System.identityHashCode(valObj) + "@" + 
valObj.getClass().getName();
          }


Thanks, Roger


More information about the serviceability-dev mailing list