final class com.sun.jmx.mbeanserver.OpenConverter$TabularConverter extends com.sun.jmx.mbeanserver.OpenConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jmx.mbeanserver.OpenConverter$TabularConverter
  super_class: com.sun.jmx.mbeanserver.OpenConverter
{
  private final boolean sortedMap;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.OpenConverter keyConverter;
    descriptor: Lcom/sun/jmx/mbeanserver/OpenConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.OpenConverter valueConverter;
    descriptor: Lcom/sun/jmx/mbeanserver/OpenConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.reflect.Type, boolean, javax.management.openmbean.TabularType, com.sun.jmx.mbeanserver.OpenConverter, com.sun.jmx.mbeanserver.OpenConverter);
    descriptor: (Ljava/lang/reflect/Type;ZLjavax/management/openmbean/TabularType;Lcom/sun/jmx/mbeanserver/OpenConverter;Lcom/sun/jmx/mbeanserver/OpenConverter;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
        start local 1 // java.lang.reflect.Type targetType
        start local 2 // boolean sortedMap
        start local 3 // javax.management.openmbean.TabularType tabularType
        start local 4 // com.sun.jmx.mbeanserver.OpenConverter keyConverter
        start local 5 // com.sun.jmx.mbeanserver.OpenConverter valueConverter
         0: .line 737
            aload 0 /* this */
            aload 1 /* targetType */
            aload 3 /* tabularType */
            ldc Ljavax/management/openmbean/TabularData;
            invokespecial com.sun.jmx.mbeanserver.OpenConverter.<init>:(Ljava/lang/reflect/Type;Ljavax/management/openmbean/OpenType;Ljava/lang/Class;)V
         1: .line 738
            aload 0 /* this */
            iload 2 /* sortedMap */
            putfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.sortedMap:Z
         2: .line 739
            aload 0 /* this */
            aload 4 /* keyConverter */
            putfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.keyConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
         3: .line 740
            aload 0 /* this */
            aload 5 /* valueConverter */
            putfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.valueConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
         4: .line 741
            return
        end local 5 // com.sun.jmx.mbeanserver.OpenConverter valueConverter
        end local 4 // com.sun.jmx.mbeanserver.OpenConverter keyConverter
        end local 3 // javax.management.openmbean.TabularType tabularType
        end local 2 // boolean sortedMap
        end local 1 // java.lang.reflect.Type targetType
        end local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/jmx/mbeanserver/OpenConverter$TabularConverter;
            0    5     1      targetType  Ljava/lang/reflect/Type;
            0    5     2       sortedMap  Z
            0    5     3     tabularType  Ljavax/management/openmbean/TabularType;
            0    5     4    keyConverter  Lcom/sun/jmx/mbeanserver/OpenConverter;
            0    5     5  valueConverter  Lcom/sun/jmx/mbeanserver/OpenConverter;
    MethodParameters:
                Name  Flags
      targetType      
      sortedMap       
      tabularType     
      keyConverter    
      valueConverter  

  final java.lang.Object toNonNullOpenValue(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=8, locals=12, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object value
         0: .line 745
            aload 2 /* value */
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 3 /* valueMap */
        start local 3 // java.util.Map valueMap
         1: .line 746
            aload 3 /* valueMap */
            instanceof java.util.SortedMap
            ifeq 9
         2: .line 747
            aload 3 /* valueMap */
            checkcast java.util.SortedMap
            invokeinterface java.util.SortedMap.comparator:()Ljava/util/Comparator;
            astore 4 /* comparator */
        start local 4 // java.util.Comparator comparator
         3: .line 748
            aload 4 /* comparator */
            ifnull 9
         4: .line 750
            new java.lang.StringBuilder
            dup
            ldc "Cannot convert SortedMap with non-null comparator: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 751
            aload 4 /* comparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 750
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 749
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         8: .line 752
            new javax.management.openmbean.OpenDataException
            dup
            aload 5 /* msg */
            invokespecial javax.management.openmbean.OpenDataException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
        end local 4 // java.util.Comparator comparator
         9: .line 755
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.getOpenType:()Ljavax/management/openmbean/OpenType;
            checkcast javax.management.openmbean.TabularType
            astore 4 /* tabularType */
        start local 4 // javax.management.openmbean.TabularType tabularType
        10: .line 756
            new javax.management.openmbean.TabularDataSupport
            dup
            aload 4 /* tabularType */
            invokespecial javax.management.openmbean.TabularDataSupport.<init>:(Ljavax/management/openmbean/TabularType;)V
            astore 5 /* table */
        start local 5 // javax.management.openmbean.TabularData table
        11: .line 757
            aload 4 /* tabularType */
            invokevirtual javax.management.openmbean.TabularType.getRowType:()Ljavax/management/openmbean/CompositeType;
            astore 6 /* rowType */
        start local 6 // javax.management.openmbean.CompositeType rowType
        12: .line 758
            aload 3 /* valueMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 24
      StackMap locals: com.sun.jmx.mbeanserver.OpenConverter$TabularConverter com.sun.jmx.mbeanserver.MXBeanLookup java.lang.Object java.util.Map javax.management.openmbean.TabularType javax.management.openmbean.TabularData javax.management.openmbean.CompositeType top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
        14: .line 760
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.keyConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
        15: .line 759
            astore 9 /* openKey */
        start local 9 // java.lang.Object openKey
        16: .line 762
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.valueConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
        17: .line 761
            astore 10 /* openValue */
        start local 10 // java.lang.Object openValue
        18: .line 765
            new javax.management.openmbean.CompositeDataSupport
            dup
            aload 6 /* rowType */
            getstatic com.sun.jmx.mbeanserver.OpenConverter.keyValueArray:[Ljava/lang/String;
        19: .line 766
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* openKey */
            aastore
            dup
            iconst_1
        20: .line 767
            aload 10 /* openValue */
            aastore
        21: .line 765
            invokespecial javax.management.openmbean.CompositeDataSupport.<init>:(Ljavax/management/openmbean/CompositeType;[Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 764
            astore 11 /* row */
        start local 11 // javax.management.openmbean.CompositeData row
        23: .line 768
            aload 5 /* table */
            aload 11 /* row */
            invokeinterface javax.management.openmbean.TabularData.put:(Ljavax/management/openmbean/CompositeData;)V
        end local 11 // javax.management.openmbean.CompositeData row
        end local 10 // java.lang.Object openValue
        end local 9 // java.lang.Object openKey
        end local 7 // java.util.Map$Entry entry
        24: .line 758
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        25: .line 770
            aload 5 /* table */
            areturn
        end local 6 // javax.management.openmbean.CompositeType rowType
        end local 5 // javax.management.openmbean.TabularData table
        end local 4 // javax.management.openmbean.TabularType tabularType
        end local 3 // java.util.Map valueMap
        end local 2 // java.lang.Object value
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lcom/sun/jmx/mbeanserver/OpenConverter$TabularConverter;
            0   26     1       lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0   26     2        value  Ljava/lang/Object;
            1   26     3     valueMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            3    9     4   comparator  Ljava/util/Comparator;
            8    9     5          msg  Ljava/lang/String;
           10   26     4  tabularType  Ljavax/management/openmbean/TabularType;
           11   26     5        table  Ljavax/management/openmbean/TabularData;
           12   26     6      rowType  Ljavax/management/openmbean/CompositeType;
           14   24     7        entry  Ljava/util/Map$Entry;
           16   24     9      openKey  Ljava/lang/Object;
           18   24    10    openValue  Ljava/lang/Object;
           23   24    11          row  Ljavax/management/openmbean/CompositeData;
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
        Name  Flags
      lookup  
      value   

  public final java.lang.Object fromNonNullOpenValue(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object openValue
         0: .line 775
            aload 2 /* openValue */
            checkcast javax.management.openmbean.TabularData
            astore 3 /* table */
        start local 3 // javax.management.openmbean.TabularData table
         1: .line 776
            aload 3 /* table */
            invokeinterface javax.management.openmbean.TabularData.values:()Ljava/util/Collection;
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            astore 4 /* rows */
        start local 4 // java.util.Collection rows
         2: .line 778
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.sortedMap:Z
            ifeq 3
            invokestatic com.sun.jmx.mbeanserver.Util.newSortedMap:()Ljava/util/SortedMap;
            goto 4
      StackMap locals: javax.management.openmbean.TabularData java.util.Collection
      StackMap stack:
         3: invokestatic com.sun.jmx.mbeanserver.Util.newMap:()Ljava/util/Map;
         4: .line 777
      StackMap locals:
      StackMap stack: java.util.Map
            astore 5 /* valueMap */
        start local 5 // java.util.Map valueMap
         5: .line 779
            aload 4 /* rows */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: com.sun.jmx.mbeanserver.OpenConverter$TabularConverter com.sun.jmx.mbeanserver.MXBeanLookup java.lang.Object javax.management.openmbean.TabularData java.util.Collection java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.openmbean.CompositeData
            astore 6 /* row */
        start local 6 // javax.management.openmbean.CompositeData row
         7: .line 781
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.keyConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 6 /* row */
            ldc "key"
            invokeinterface javax.management.openmbean.CompositeData.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.fromOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
         8: .line 780
            astore 8 /* key */
        start local 8 // java.lang.Object key
         9: .line 783
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.valueConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 6 /* row */
            ldc "value"
            invokeinterface javax.management.openmbean.CompositeData.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.fromOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
        10: .line 782
            astore 9 /* value */
        start local 9 // java.lang.Object value
        11: .line 784
            aload 5 /* valueMap */
            aload 8 /* key */
            aload 9 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 15
        12: .line 786
            new java.lang.StringBuilder
            dup
            ldc "Duplicate entry in TabularData: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 785
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        14: .line 787
            new java.io.InvalidObjectException
            dup
            aload 10 /* msg */
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.lang.String msg
        end local 9 // java.lang.Object value
        end local 8 // java.lang.Object key
        end local 6 // javax.management.openmbean.CompositeData row
        15: .line 779
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        16: .line 790
            aload 5 /* valueMap */
            areturn
        end local 5 // java.util.Map valueMap
        end local 4 // java.util.Collection rows
        end local 3 // javax.management.openmbean.TabularData table
        end local 2 // java.lang.Object openValue
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/sun/jmx/mbeanserver/OpenConverter$TabularConverter;
            0   17     1     lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0   17     2  openValue  Ljava/lang/Object;
            1   17     3      table  Ljavax/management/openmbean/TabularData;
            2   17     4       rows  Ljava/util/Collection<Ljavax/management/openmbean/CompositeData;>;
            5   17     5   valueMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            7   15     6        row  Ljavax/management/openmbean/CompositeData;
            9   15     8        key  Ljava/lang/Object;
           11   15     9      value  Ljava/lang/Object;
           14   15    10        msg  Ljava/lang/String;
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
           Name  Flags
      lookup     
      openValue  

  void checkReconstructible();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
         0: .line 794
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.keyConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.checkReconstructible:()V
         1: .line 795
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.OpenConverter$TabularConverter.valueConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.checkReconstructible:()V
         2: .line 796
            return
        end local 0 // com.sun.jmx.mbeanserver.OpenConverter$TabularConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jmx/mbeanserver/OpenConverter$TabularConverter;
    Exceptions:
      throws java.io.InvalidObjectException
}
SourceFile: "OpenConverter.java"
NestHost: com.sun.jmx.mbeanserver.OpenConverter
InnerClasses:
  private final TabularConverter = com.sun.jmx.mbeanserver.OpenConverter$TabularConverter of com.sun.jmx.mbeanserver.OpenConverter
  public abstract Entry = java.util.Map$Entry of java.util.Map