final class com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport implements org.graalvm.polyglot.io.MessageTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport
  super_class: java.lang.Object
{
  private final com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$Session session;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint this$1;
    descriptor: Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint, com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$Session);
    descriptor: (Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport this
        start local 2 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$Session session
         0: .line 416
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 417
            aload 0 /* this */
            aload 2 /* session */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.session:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;
         2: .line 418
            return
        end local 2 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$Session session
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport;
            0    3     2  session  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;
    MethodParameters:
         Name  Flags
      this$0   final
      session  

  public org.graalvm.polyglot.io.MessageEndpoint open(java.net.URI, org.graalvm.polyglot.io.MessageEndpoint);
    descriptor: (Ljava/net/URI;Lorg/graalvm/polyglot/io/MessageEndpoint;)Lorg/graalvm/polyglot/io/MessageEndpoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport this
        start local 1 // java.net.URI requestURI
        start local 2 // org.graalvm.polyglot.io.MessageEndpoint peerEndpoint
         0: .line 422
            ldc "Invalid protocol"
            ldc "ws"
            aload 1 /* requestURI */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 423
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            aload 2 /* peerEndpoint */
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.peer:Lorg/graalvm/polyglot/io/MessageEndpoint;
         2: .line 424
            aload 1 /* requestURI */
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            astore 3 /* uriStr */
        start local 3 // java.lang.String uriStr
         3: .line 425
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.path:Ljava/lang/String;
            ifnonnull 6
         4: .line 426
            aload 3 /* uriStr */
            getstatic com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest.URI_PATTERN:Ljava/util/regex/Pattern;
            aload 3 /* uriStr */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         5: .line 427
            goto 11
         6: .line 428
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* uriStr */
            aload 3 /* uriStr */
            ldc "ws://"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         7: .line 429
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.path:Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.path:Ljava/lang/String;
            goto 9
      StackMap locals:
      StackMap stack:
         8: new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.path:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         9: astore 4 /* absolutePath */
        start local 4 // java.lang.String absolutePath
        10: .line 430
            aload 3 /* uriStr */
            aload 3 /* uriStr */
            new java.lang.StringBuilder
            dup
            ldc ":54367"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* absolutePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 4 // java.lang.String absolutePath
        11: .line 432
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* closed */
        start local 4 // boolean closed
        12: .line 433
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.openCountLimit:I
            ifne 16
        13: .line 434
            iconst_1
            istore 4 /* closed */
        14: .line 435
            aload 2 /* peerEndpoint */
            invokeinterface org.graalvm.polyglot.io.MessageEndpoint.sendClose:()V
        15: .line 436
            goto 18
      StackMap locals: int
      StackMap stack:
        16: aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.openCountLimit:I
            ifle 18
        17: .line 437
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            dup
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.openCountLimit:I
            iconst_1
            isub
            putfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.openCountLimit:I
        18: .line 439
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$ChromeDebuggingProtocolMessageHandler
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.session:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;
            aload 1 /* requestURI */
            aload 2 /* peerEndpoint */
            iload 4 /* closed */
            invokespecial com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$ChromeDebuggingProtocolMessageHandler.<init>:(Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$Session;Ljava/net/URI;Lorg/graalvm/polyglot/io/MessageEndpoint;Z)V
            astore 5 /* ourEndpoint */
        start local 5 // org.graalvm.polyglot.io.MessageEndpoint ourEndpoint
        19: .line 440
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.rc:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$RaceControl;
            ifnull 21
        20: .line 441
            aload 0 /* this */
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport.this$1:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint;
            getfield com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint.rc:Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$RaceControl;
            invokevirtual com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$RaceControl.waitTillClientDataAreSent:()V
        21: .line 443
      StackMap locals: org.graalvm.polyglot.io.MessageEndpoint
      StackMap stack:
            aload 5 /* ourEndpoint */
            areturn
        end local 5 // org.graalvm.polyglot.io.MessageEndpoint ourEndpoint
        end local 4 // boolean closed
        end local 3 // java.lang.String uriStr
        end local 2 // org.graalvm.polyglot.io.MessageEndpoint peerEndpoint
        end local 1 // java.net.URI requestURI
        end local 0 // com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lcom/oracle/truffle/tools/chromeinspector/test/InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport;
            0   22     1    requestURI  Ljava/net/URI;
            0   22     2  peerEndpoint  Lorg/graalvm/polyglot/io/MessageEndpoint;
            3   22     3        uriStr  Ljava/lang/String;
           10   11     4  absolutePath  Ljava/lang/String;
           12   22     4        closed  Z
           19   22     5   ourEndpoint  Lorg/graalvm/polyglot/io/MessageEndpoint;
    Exceptions:
      throws java.io.IOException, org.graalvm.polyglot.io.MessageTransport$VetoException
    MethodParameters:
              Name  Flags
      requestURI    
      peerEndpoint  
}
SourceFile: "InspectorMessageTransportTest.java"
NestHost: com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest
InnerClasses:
  private final ChromeDebuggingProtocolMessageHandler = com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$ChromeDebuggingProtocolMessageHandler of com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest
  private final DebuggerEndpoint = com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint of com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest
  private final EndpointMessageTransport = com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint$EndpointMessageTransport of com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$DebuggerEndpoint
  private final RaceControl = com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$RaceControl of com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest
  private final Session = com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest$Session of com.oracle.truffle.tools.chromeinspector.test.InspectorMessageTransportTest
  public final VetoException = org.graalvm.polyglot.io.MessageTransport$VetoException of org.graalvm.polyglot.io.MessageTransport