public class com.sun.security.auth.callback.DialogCallbackHandler implements javax.security.auth.callback.CallbackHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.security.auth.callback.DialogCallbackHandler
  super_class: java.lang.Object
{
  private java.awt.Component parentComponent;
    descriptor: Ljava/awt/Component;
    flags: (0x0002) ACC_PRIVATE

  private static final int JPasswordFieldLen;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int JTextFieldLen;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/security/auth/callback/DialogCallbackHandler;

  public void <init>(java.awt.Component);
    descriptor: (Ljava/awt/Component;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
        start local 1 // java.awt.Component parentComponent
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            aload 1 /* parentComponent */
            putfield com.sun.security.auth.callback.DialogCallbackHandler.parentComponent:Ljava/awt/Component;
         2: .line 80
            return
        end local 1 // java.awt.Component parentComponent
        end local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/sun/security/auth/callback/DialogCallbackHandler;
            0    3     1  parentComponent  Ljava/awt/Component;
    MethodParameters:
                 Name  Flags
      parentComponent  

  public void handle(javax.security.auth.callback.Callback[]);
    descriptor: ([Ljavax/security/auth/callback/Callback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=2
        start local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
        start local 1 // javax.security.auth.callback.Callback[] callbacks
         0: .line 102
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* messages */
        start local 2 // java.util.List messages
         1: .line 105
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* okActions */
        start local 3 // java.util.List okActions
         2: .line 107
            new com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo
            dup
            invokespecial com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.<init>:()V
            astore 4 /* confirmation */
        start local 4 // com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo confirmation
         3: .line 109
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 55
         5: .line 110
      StackMap locals: com.sun.security.auth.callback.DialogCallbackHandler javax.security.auth.callback.Callback[] java.util.List java.util.List com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo int
      StackMap stack:
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            instanceof javax.security.auth.callback.TextOutputCallback
            ifeq 19
         6: .line 111
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            checkcast javax.security.auth.callback.TextOutputCallback
            astore 6 /* tc */
        start local 6 // javax.security.auth.callback.TextOutputCallback tc
         7: .line 113
            aload 6 /* tc */
            invokevirtual javax.security.auth.callback.TextOutputCallback.getMessageType:()I
            tableswitch { // 0 - 2
                    0: 8
                    1: 10
                    2: 12
              default: 14
          }
         8: .line 115
      StackMap locals: javax.security.auth.callback.TextOutputCallback
      StackMap stack:
            aload 4 /* confirmation */
            iconst_1
            putfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.messageType:I
         9: .line 116
            goto 17
        10: .line 118
      StackMap locals:
      StackMap stack:
            aload 4 /* confirmation */
            iconst_2
            putfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.messageType:I
        11: .line 119
            goto 17
        12: .line 121
      StackMap locals:
      StackMap stack:
            aload 4 /* confirmation */
            iconst_0
            putfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.messageType:I
        13: .line 122
            goto 17
        14: .line 124
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.UnsupportedCallbackException
            dup
        15: .line 125
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            ldc "Unrecognized message type"
        16: .line 124
            invokespecial javax.security.auth.callback.UnsupportedCallbackException.<init>:(Ljavax/security/auth/callback/Callback;Ljava/lang/String;)V
            athrow
        17: .line 128
      StackMap locals:
      StackMap stack:
            aload 2 /* messages */
            aload 6 /* tc */
            invokevirtual javax.security.auth.callback.TextOutputCallback.getMessage:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // javax.security.auth.callback.TextOutputCallback tc
        18: .line 130
            goto 54
      StackMap locals:
      StackMap stack:
        19: aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            instanceof javax.security.auth.callback.NameCallback
            ifeq 32
        20: .line 131
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            checkcast javax.security.auth.callback.NameCallback
            astore 6 /* nc */
        start local 6 // javax.security.auth.callback.NameCallback nc
        21: .line 133
            new javax.swing.JLabel
            dup
            aload 6 /* nc */
            invokevirtual javax.security.auth.callback.NameCallback.getPrompt:()Ljava/lang/String;
            invokespecial javax.swing.JLabel.<init>:(Ljava/lang/String;)V
            astore 7 /* prompt */
        start local 7 // javax.swing.JLabel prompt
        22: .line 135
            new javax.swing.JTextField
            dup
            bipush 8
            invokespecial javax.swing.JTextField.<init>:(I)V
            astore 8 /* name */
        start local 8 // javax.swing.JTextField name
        23: .line 136
            aload 6 /* nc */
            invokevirtual javax.security.auth.callback.NameCallback.getDefaultName:()Ljava/lang/String;
            astore 9 /* defaultName */
        start local 9 // java.lang.String defaultName
        24: .line 137
            aload 9 /* defaultName */
            ifnull 26
        25: .line 138
            aload 8 /* name */
            aload 9 /* defaultName */
            invokevirtual javax.swing.JTextField.setText:(Ljava/lang/String;)V
        26: .line 145
      StackMap locals: com.sun.security.auth.callback.DialogCallbackHandler javax.security.auth.callback.Callback[] java.util.List java.util.List com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo int javax.security.auth.callback.NameCallback javax.swing.JLabel javax.swing.JTextField java.lang.String
      StackMap stack:
            invokestatic javax.swing.Box.createHorizontalBox:()Ljavax/swing/Box;
            astore 10 /* namePanel */
        start local 10 // javax.swing.Box namePanel
        27: .line 146
            aload 10 /* namePanel */
            aload 7 /* prompt */
            invokevirtual javax.swing.Box.add:(Ljava/awt/Component;)Ljava/awt/Component;
            pop
        28: .line 147
            aload 10 /* namePanel */
            aload 8 /* name */
            invokevirtual javax.swing.Box.add:(Ljava/awt/Component;)Ljava/awt/Component;
            pop
        29: .line 148
            aload 2 /* messages */
            aload 10 /* namePanel */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        30: .line 151
            aload 3 /* okActions */
            new com.sun.security.auth.callback.DialogCallbackHandler$1
            dup
            aload 0 /* this */
            aload 6 /* nc */
            aload 8 /* name */
            invokespecial com.sun.security.auth.callback.DialogCallbackHandler$1.<init>:(Lcom/sun/security/auth/callback/DialogCallbackHandler;Ljavax/security/auth/callback/NameCallback;Ljavax/swing/JTextField;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // javax.swing.Box namePanel
        end local 9 // java.lang.String defaultName
        end local 8 // javax.swing.JTextField name
        end local 7 // javax.swing.JLabel prompt
        end local 6 // javax.security.auth.callback.NameCallback nc
        31: .line 157
            goto 54
      StackMap locals: com.sun.security.auth.callback.DialogCallbackHandler javax.security.auth.callback.Callback[] java.util.List java.util.List com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo int
      StackMap stack:
        32: aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            instanceof javax.security.auth.callback.PasswordCallback
            ifeq 45
        33: .line 158
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            checkcast javax.security.auth.callback.PasswordCallback
            astore 6 /* pc */
        start local 6 // javax.security.auth.callback.PasswordCallback pc
        34: .line 160
            new javax.swing.JLabel
            dup
            aload 6 /* pc */
            invokevirtual javax.security.auth.callback.PasswordCallback.getPrompt:()Ljava/lang/String;
            invokespecial javax.swing.JLabel.<init>:(Ljava/lang/String;)V
            astore 7 /* prompt */
        start local 7 // javax.swing.JLabel prompt
        35: .line 163
            new javax.swing.JPasswordField
            dup
            bipush 8
            invokespecial javax.swing.JPasswordField.<init>:(I)V
        36: .line 162
            astore 8 /* password */
        start local 8 // javax.swing.JPasswordField password
        37: .line 164
            aload 6 /* pc */
            invokevirtual javax.security.auth.callback.PasswordCallback.isEchoOn:()Z
            ifne 39
        38: .line 165
            aload 8 /* password */
            bipush 42
            invokevirtual javax.swing.JPasswordField.setEchoChar:(C)V
        39: .line 168
      StackMap locals: javax.security.auth.callback.PasswordCallback javax.swing.JLabel javax.swing.JPasswordField
      StackMap stack:
            invokestatic javax.swing.Box.createHorizontalBox:()Ljavax/swing/Box;
            astore 9 /* passwordPanel */
        start local 9 // javax.swing.Box passwordPanel
        40: .line 169
            aload 9 /* passwordPanel */
            aload 7 /* prompt */
            invokevirtual javax.swing.Box.add:(Ljava/awt/Component;)Ljava/awt/Component;
            pop
        41: .line 170
            aload 9 /* passwordPanel */
            aload 8 /* password */
            invokevirtual javax.swing.Box.add:(Ljava/awt/Component;)Ljava/awt/Component;
            pop
        42: .line 171
            aload 2 /* messages */
            aload 9 /* passwordPanel */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        43: .line 173
            aload 3 /* okActions */
            new com.sun.security.auth.callback.DialogCallbackHandler$2
            dup
            aload 0 /* this */
            aload 6 /* pc */
            aload 8 /* password */
            invokespecial com.sun.security.auth.callback.DialogCallbackHandler$2.<init>:(Lcom/sun/security/auth/callback/DialogCallbackHandler;Ljavax/security/auth/callback/PasswordCallback;Ljavax/swing/JPasswordField;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // javax.swing.Box passwordPanel
        end local 8 // javax.swing.JPasswordField password
        end local 7 // javax.swing.JLabel prompt
        end local 6 // javax.security.auth.callback.PasswordCallback pc
        44: .line 179
            goto 54
      StackMap locals:
      StackMap stack:
        45: aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            instanceof javax.security.auth.callback.ConfirmationCallback
            ifeq 51
        46: .line 180
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            checkcast javax.security.auth.callback.ConfirmationCallback
            astore 6 /* cc */
        start local 6 // javax.security.auth.callback.ConfirmationCallback cc
        47: .line 182
            aload 4 /* confirmation */
            aload 6 /* cc */
            invokevirtual com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.setCallback:(Ljavax/security/auth/callback/ConfirmationCallback;)V
        48: .line 183
            aload 6 /* cc */
            invokevirtual javax.security.auth.callback.ConfirmationCallback.getPrompt:()Ljava/lang/String;
            ifnull 54
        49: .line 184
            aload 2 /* messages */
            aload 6 /* cc */
            invokevirtual javax.security.auth.callback.ConfirmationCallback.getPrompt:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // javax.security.auth.callback.ConfirmationCallback cc
        50: .line 187
            goto 54
        51: .line 188
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.UnsupportedCallbackException
            dup
        52: .line 189
            aload 1 /* callbacks */
            iload 5 /* i */
            aaload
            ldc "Unrecognized Callback"
        53: .line 188
            invokespecial javax.security.auth.callback.UnsupportedCallbackException.<init>:(Ljavax/security/auth/callback/Callback;Ljava/lang/String;)V
            athrow
        54: .line 109
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 5 /* i */
            aload 1 /* callbacks */
            arraylength
            if_icmplt 5
        end local 5 // int i
        56: .line 195
            aload 0 /* this */
            getfield com.sun.security.auth.callback.DialogCallbackHandler.parentComponent:Ljava/awt/Component;
        57: .line 196
            aload 2 /* messages */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
        58: .line 197
            ldc "Confirmation"
        59: .line 198
            aload 4 /* confirmation */
            getfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.optionType:I
        60: .line 199
            aload 4 /* confirmation */
            getfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.messageType:I
        61: .line 200
            aconst_null
        62: .line 201
            aload 4 /* confirmation */
            getfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.options:[Ljava/lang/Object;
        63: .line 202
            aload 4 /* confirmation */
            getfield com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.initialValue:Ljava/lang/Object;
        64: .line 194
            invokestatic javax.swing.JOptionPane.showOptionDialog:(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;IILjavax/swing/Icon;[Ljava/lang/Object;Ljava/lang/Object;)I
            istore 5 /* result */
        start local 5 // int result
        65: .line 205
            iload 5 /* result */
            ifeq 67
        66: .line 206
            iload 5 /* result */
            ifne 71
        67: .line 208
      StackMap locals:
      StackMap stack:
            aload 3 /* okActions */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* iterator */
        start local 6 // java.util.Iterator iterator
        68: .line 209
            goto 70
        69: .line 210
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.security.auth.callback.DialogCallbackHandler$Action
            invokeinterface com.sun.security.auth.callback.DialogCallbackHandler$Action.perform:()V
        70: .line 209
      StackMap locals:
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 69
        end local 6 // java.util.Iterator iterator
        71: .line 213
      StackMap locals:
      StackMap stack:
            aload 4 /* confirmation */
            iload 5 /* result */
            invokevirtual com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo.handleResult:(I)V
        72: .line 214
            return
        end local 5 // int result
        end local 4 // com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo confirmation
        end local 3 // java.util.List okActions
        end local 2 // java.util.List messages
        end local 1 // javax.security.auth.callback.Callback[] callbacks
        end local 0 // com.sun.security.auth.callback.DialogCallbackHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   73     0           this  Lcom/sun/security/auth/callback/DialogCallbackHandler;
            0   73     1      callbacks  [Ljavax/security/auth/callback/Callback;
            1   73     2       messages  Ljava/util/List<Ljava/lang/Object;>;
            2   73     3      okActions  Ljava/util/List<Lcom/sun/security/auth/callback/DialogCallbackHandler$Action;>;
            3   73     4   confirmation  Lcom/sun/security/auth/callback/DialogCallbackHandler$ConfirmationInfo;
            4   56     5              i  I
            7   18     6             tc  Ljavax/security/auth/callback/TextOutputCallback;
           21   31     6             nc  Ljavax/security/auth/callback/NameCallback;
           22   31     7         prompt  Ljavax/swing/JLabel;
           23   31     8           name  Ljavax/swing/JTextField;
           24   31     9    defaultName  Ljava/lang/String;
           27   31    10      namePanel  Ljavax/swing/Box;
           34   44     6             pc  Ljavax/security/auth/callback/PasswordCallback;
           35   44     7         prompt  Ljavax/swing/JLabel;
           37   44     8       password  Ljavax/swing/JPasswordField;
           40   44     9  passwordPanel  Ljavax/swing/Box;
           47   50     6             cc  Ljavax/security/auth/callback/ConfirmationCallback;
           65   73     5         result  I
           68   71     6       iterator  Ljava/util/Iterator<Lcom/sun/security/auth/callback/DialogCallbackHandler$Action;>;
    Exceptions:
      throws javax.security.auth.callback.UnsupportedCallbackException
    MethodParameters:
           Name  Flags
      callbacks  
}
SourceFile: "DialogCallbackHandler.java"
NestMembers:
  com.sun.security.auth.callback.DialogCallbackHandler$1  com.sun.security.auth.callback.DialogCallbackHandler$2  com.sun.security.auth.callback.DialogCallbackHandler$Action  com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo
InnerClasses:
  com.sun.security.auth.callback.DialogCallbackHandler$1
  com.sun.security.auth.callback.DialogCallbackHandler$2
  private abstract Action = com.sun.security.auth.callback.DialogCallbackHandler$Action of com.sun.security.auth.callback.DialogCallbackHandler
  private ConfirmationInfo = com.sun.security.auth.callback.DialogCallbackHandler$ConfirmationInfo of com.sun.security.auth.callback.DialogCallbackHandler