src/java.management/share/classes/sun/management/LockInfoCompositeData.java
changeset 52288 2b29df6dfa68
parent 49077 b1c42b3cd19b
child 58766 54ffb15c4839
equal deleted inserted replaced
52287:2f6c9127dd97 52288:2b29df6dfa68
    24  */
    24  */
    25 
    25 
    26 package sun.management;
    26 package sun.management;
    27 
    27 
    28 import java.lang.management.LockInfo;
    28 import java.lang.management.LockInfo;
       
    29 import java.util.Map;
    29 import javax.management.openmbean.CompositeType;
    30 import javax.management.openmbean.CompositeType;
    30 import javax.management.openmbean.CompositeData;
    31 import javax.management.openmbean.CompositeData;
    31 import javax.management.openmbean.CompositeDataSupport;
    32 import javax.management.openmbean.CompositeDataSupport;
    32 import javax.management.openmbean.OpenDataException;
    33 import javax.management.openmbean.OpenDataException;
    33 
    34 
    55         LockInfoCompositeData licd = new LockInfoCompositeData(li);
    56         LockInfoCompositeData licd = new LockInfoCompositeData(li);
    56         return licd.getCompositeData();
    57         return licd.getCompositeData();
    57     }
    58     }
    58 
    59 
    59     protected CompositeData getCompositeData() {
    60     protected CompositeData getCompositeData() {
    60         // CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
    61         Map<String,Object> items = Map.of(
    61         // LOCK_INFO_ATTRIBUTES!
    62             CLASS_NAME,         lock.getClassName(),
    62         final Object[] lockInfoItemValues = {
    63             IDENTITY_HASH_CODE, lock.getIdentityHashCode()
    63             new String(lock.getClassName()),
    64         );
    64             lock.getIdentityHashCode(),
       
    65         };
       
    66 
    65 
    67         try {
    66         try {
    68             return new CompositeDataSupport(LOCK_INFO_COMPOSITE_TYPE,
    67             return new CompositeDataSupport(LOCK_INFO_COMPOSITE_TYPE, items);
    69                                             LOCK_INFO_ATTRIBUTES,
       
    70                                             lockInfoItemValues);
       
    71         } catch (OpenDataException e) {
    68         } catch (OpenDataException e) {
    72             // Should never reach here
    69             // Should never reach here
    73             throw Util.newException(e);
    70             throw Util.newException(e);
    74         }
    71         }
    75     }
    72     }
    89         return LOCK_INFO_COMPOSITE_TYPE;
    86         return LOCK_INFO_COMPOSITE_TYPE;
    90     }
    87     }
    91 
    88 
    92     private static final String CLASS_NAME         = "className";
    89     private static final String CLASS_NAME         = "className";
    93     private static final String IDENTITY_HASH_CODE = "identityHashCode";
    90     private static final String IDENTITY_HASH_CODE = "identityHashCode";
    94     private static final String[] LOCK_INFO_ATTRIBUTES = {
       
    95         CLASS_NAME,
       
    96         IDENTITY_HASH_CODE,
       
    97     };
       
    98 
    91 
    99     /*
    92     /*
   100      * Returns a LockInfo object mapped from the given CompositeData.
    93      * Returns a LockInfo object mapped from the given CompositeData.
   101      */
    94      */
   102     public static LockInfo toLockInfo(CompositeData cd) {
    95     public static LockInfo toLockInfo(CompositeData cd) {