@@ -365,38 +365,32 @@ public void processReceivedMessages(List<ReceivedMessage> messages, Runnable don
365365 }
366366
367367 messagesWaiter .incrementPendingMessages (outstandingBatch .messages .size ());
368- synchronized (outstandingMessageBatches ) {
369- outstandingMessageBatches .add (outstandingBatch );
370- }
368+ outstandingMessageBatches .add (outstandingBatch );
371369 processOutstandingBatches ();
372370 }
373371
374372 private void processOutstandingBatches () {
375- synchronized (outstandingMessageBatches ) {
376- for (OutstandingMessageBatch nextBatch = outstandingMessageBatches .poll ();
377- nextBatch != null ;
378- nextBatch = outstandingMessageBatches .poll ()) {
379- for (OutstandingMessage nextMessage = nextBatch .messages .poll ();
380- nextMessage != null ;
381- nextMessage = nextBatch .messages .poll ()) {
382- try {
383- // This is a non-blocking flow controller.
384- flowController .reserve (1 , nextMessage .receivedMessage .getMessage ().getSerializedSize ());
385- } catch (FlowController .MaxOutstandingElementCountReachedException
386- | FlowController .MaxOutstandingRequestBytesReachedException flowControlException ) {
387- // Unwind previous changes in the batches outstanding.
388- nextBatch .messages .addFirst (nextMessage );
389- outstandingMessageBatches .addFirst (nextBatch );
390- return ;
391- } catch (FlowControlException unexpectedException ) {
392- throw new IllegalStateException (
393- "Flow control unexpected exception" , unexpectedException );
394- }
395- processOutstandingMessage (
396- nextMessage .receivedMessage .getMessage (), nextMessage .ackHandler );
373+ for (OutstandingMessageBatch nextBatch = outstandingMessageBatches .poll ();
374+ nextBatch != null ;
375+ nextBatch = outstandingMessageBatches .poll ()) {
376+ for (OutstandingMessage nextMessage = nextBatch .messages .poll ();
377+ nextMessage != null ;
378+ nextMessage = nextBatch .messages .poll ()) {
379+ try {
380+ // This is a non-blocking flow controller.
381+ flowController .reserve (1 , nextMessage .receivedMessage .getMessage ().getSerializedSize ());
382+ } catch (FlowController .MaxOutstandingElementCountReachedException
383+ | FlowController .MaxOutstandingRequestBytesReachedException flowControlException ) {
384+ // Unwind previous changes in the batches outstanding.
385+ nextBatch .messages .addFirst (nextMessage );
386+ outstandingMessageBatches .addFirst (nextBatch );
387+ return ;
388+ } catch (FlowControlException unexpectedException ) {
389+ throw new IllegalStateException ("Flow control unexpected exception" , unexpectedException );
397390 }
398- nextBatch . doneCallback . run ( );
391+ processOutstandingMessage ( nextMessage . receivedMessage . getMessage (), nextMessage . ackHandler );
399392 }
393+ nextBatch .doneCallback .run ();
400394 }
401395 }
402396
0 commit comments