7  java/lang/Object()V#net/luminis/quic/QuicConnectionImpl  org/mockito/Mockitomock%(Ljava/lang/Class;)Ljava/lang/Object;  )net/luminis/quic/stream/StreamManagerTestquicConnection%Lnet/luminis/quic/QuicConnectionImpl;%net/luminis/quic/stream/StreamManager  net/luminis/quic/RoleClientLnet/luminis/quic/Role;net/luminis/quic/log/Logger  !^(Lnet/luminis/quic/QuicConnectionImpl;Lnet/luminis/quic/Role;Lnet/luminis/quic/log/Logger;II)V # $% streamManager'Lnet/luminis/quic/stream/StreamManager;'#net/luminis/quic/stream/FlowControl ) *+setFlowController((Lnet/luminis/quic/stream/FlowControl;)V / 01setInitialMaxStreamsBidi(J)V 3 45 createStream (Z)Lnet/luminis/quic/QuicStream; 789 :;org/assertj/core/api/Assertions assertThat7(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert; =>? @A!org/assertj/core/api/ObjectAssert isNotNull'()Lorg/assertj/core/api/AbstractAssert; C D1setInitialMaxStreamsUniF GHcalld(Lnet/luminis/quic/stream/StreamManagerTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable; 7J KLassertThatThrownByg(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;N%java/util/concurrent/TimeoutException PQR ST,org/assertj/core/api/AbstractThrowableAssert isInstanceOf8(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;FW&net/luminis/quic/frame/MaxStreamsFrame V[ \(JZ)V ^ _`process+(Lnet/luminis/quic/frame/MaxStreamsFrame;)V d efgetMaxBidirectionalStreams()J 7h :i,(J)Lorg/assertj/core/api/AbstractLongAssert; klm ni'org/assertj/core/api/AbstractLongAssertisGreaterThanOrEqualTo p qfgetMaxUnirectionalStreams ku vi isEqualTo z+java/util/concurrent/atomic/AtomicReference y}java/lang/Thread runn(Lnet/luminis/quic/stream/StreamManagerTest;Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Runnable; | (Ljava/lang/Runnable;)V | start2 | 1sleep y get()Ljava/lang/Object;net/luminis/quic/QuicStream = isNull  createEarlyDataStream,(Z)Lnet/luminis/quic/stream/EarlyDataStream;  Server  getStreamId()I 7 :/(I)Lorg/assertj/core/api/AbstractIntegerAssert;  v*org/assertj/core/api/AbstractIntegerAssertjava/util/ArrayList  accept/(Ljava/util/List;)Ljava/util/function/Consumer;  setPeerInitiatedStreamCallback (Ljava/util/function/Consumer;)V"net/luminis/quic/frame/StreamFrame (I[BZ)V  _'(Lnet/luminis/quic/frame/StreamFrame;)V 7 :3(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;  org/assertj/core/api/ListAsserthasSize0(I)Lorg/assertj/core/api/AbstractIterableAssert;  java/util/List(I)Ljava/lang/Object; Ge(Lnet/luminis/quic/stream/StreamManagerTest;I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;net/luminis/quic/TransportError  verifyMaxStreamsFrameIsToBeSent(I)Vjava/util/function/Function  org/mockito/ArgumentCaptorforClass/(Ljava/lang/Class;)Lorg/mockito/ArgumentCaptor; verify&(Ljava/lang/Object;)Ljava/lang/Object; capture  org/mockito/ArgumentMatchersanyInt net/luminis/quic/EncryptionLevel anyjava/util/function/Consumer  send`(Ljava/util/function/Function;ILnet/luminis/quic/EncryptionLevel;Ljava/util/function/Consumer;)V getValue  java/lang/IntegervalueOf(I)Ljava/lang/Integer; apply net/luminis/quic/frame/QuicFrame =Q V f getMaxStreams    add(Ljava/lang/Object;)Z y  set(Ljava/lang/Object;)V  java/util/concurrent/TimeUnit MILLISECONDSLjava/util/concurrent/TimeUnit;  4@(ZJLjava/util/concurrent/TimeUnit;)Lnet/luminis/quic/QuicStream;CodeLineNumberTableLocalVariableTablethis+Lnet/luminis/quic/stream/StreamManagerTest;initRuntimeVisibleAnnotations"Lorg/junit/jupiter/api/BeforeEach;4canCreateBidirectionalStreamWhenMaxStreamsNotReachedstream1Lnet/luminis/quic/QuicStream;stream2stream3Lorg/junit/jupiter/api/Test;3canCreateUnirectionalStreamWhenMaxStreamsNotReached4cannotCreateBidirectionalStreamWhenMaxStreamsReached3cannotCreateUnirectionalStreamWhenMaxStreamsReached5canCreateBidirectionalStreamWhenMaxStreamsIsIncreased5canCreateUndirectionalStreamWhenMaxStreamsIsIncreasedmaxBidiStreamsCanNeverDecreasemaxUniStreamsCanNeverDecrease0settingInitialMaxBidiStreamsCanOnlyIncreaseValue/settingInitialMaxUniStreamsCanOnlyIncreaseValueCblockingCreateBidirectionalStreamContinuesWhenMaxStreamsIsIncreased firstStreamstreamReference-Ljava/util/concurrent/atomic/AtomicReference;LocalVariableTypeTableLLjava/util/concurrent/atomic/AtomicReference; Exceptions7java/lang/ExceptionBblockingCreateUnirectionalStreamContinuesWhenMaxStreamsIsIncreased:creatingEarlyDataStreamShouldNotBlockWhenMaxStreamsReachedearlyDataStream(Lnet/luminis/quic/stream/QuicStreamImpl;$serverInitiatedStreamShouldHaveOddIdstream/inServerRoleClientInitiatedStreamCausesCallback openedStreamsLjava/util/List;/Ljava/util/List;BwhenStreamLimitIsReachedCreateStreamLeadsToTransportErrorExceptioniInext StackMapTableLwhenStreamLimitIsReachedImplicitlyCreateStreamLeadsToTransportErrorException$whenStreamIsClosedOneMoreCanBeOpenedstreamId closeFrame$Lnet/luminis/quic/frame/StreamFrame; nextStreamId/whenStreamIsClosedInSameFrameOneMoreCanBeOpened8whenMultipleStreamsAreClosedOnlyOneMaxStreamsFrameIsSentexpectedMaxStreamscaptorLorg/mockito/ArgumentCaptor;frame"Lnet/luminis/quic/frame/QuicFrame;rLorg/mockito/ArgumentCaptor;>;Ulambda$whenStreamLimitIsReachedImplicitlyCreateStreamLeadsToTransportErrorException$6Wjava/lang/ThrowableKlambda$whenStreamLimitIsReachedCreateStreamLeadsToTransportErrorException$58lambda$inServerRoleClientInitiatedStreamCausesCallback$40(Ljava/util/List;Lnet/luminis/quic/QuicStream;)VKlambda$blockingCreateUnirectionalStreamContinuesWhenMaxStreamsIsIncreased$30(Ljava/util/concurrent/atomic/AtomicReference;)VLlambda$blockingCreateBidirectionalStreamContinuesWhenMaxStreamsIsIncreased$2*",.*"2L*"2M*"2N+6?@%C-D5E=F*>+!""#"%$"%&>*",B*"2L*"2M*"2N+6+!""#"%$"%'q)*" .*"2L*EIMOW+6*" .*"VYXZ]*"VYaZ]*"cgXjW,= >%,x>*" B*"VYXZ]*"VYaZ]*"ogXjW,= >%-\&*"r.*",.*"cgrtW % &%.\&*"wB*",B*"ogwtW % &%/l*" .*"2L+6*Y    "*"& &(*" .YL*"+*"Yd+W+W& "19ANbk AB?@3 AB?A56%B8< *"Yh`=*I϶OW&'&%*'+3/70 86CD'EDF"56%Gl(*"Y% <*I϶OW578#<'=(ED56%HH%<*"YYM*",)>*"Y* ұ"BCF#G+J.LANGO*HEID#%JK.LD56%M3%<*"Y)=*"Y* ұTWZ\,^2_ 30IDLD56%N,< *"Yh`*ұded%h+i#CD,F "56%]ָM*,ָ, N-6VW-VgtWlm-nBoLp\q*]]ODWPQBRS3 WPTUL*"Yh`:ED5VXL*"Yh`-ED5V YZ= *+W ?@ ="[\U*"2M+,   12 ="]\U*"2M+,   12 ="^8*" Wo 5V_8*" W` 5V`abHcjkjcjnjcjqjcjtjcwx{cj}jcjj