@@ -98,9 +98,9 @@ public void channelReleased( Channel channel )
9898        {
9999            decrementInUse ( channel  );
100100            incrementIdle ( channel  );
101+             channel .closeFuture ().addListener ( closeListener  );
101102        } );
102103
103-         channel .closeFuture ().addListener ( closeListener  );
104104        log .debug ( "Channel [0x%s] released back to the pool" , channel .id () );
105105    }
106106
@@ -111,9 +111,9 @@ public void channelAcquired( Channel channel )
111111        {
112112            incrementInUse ( channel  );
113113            decrementIdle ( channel  );
114+             channel .closeFuture ().removeListener ( closeListener  );
114115        } );
115116
116-         channel .closeFuture ().removeListener ( closeListener  );
117117        log .debug ( "Channel [0x%s] acquired from the pool. Local address: %s, remote address: %s" , channel .id (), channel .localAddress (),
118118                channel .remoteAddress () );
119119    }
@@ -188,7 +188,13 @@ private void incrementInUse( Channel channel )
188188
189189    private  void  decrementInUse ( Channel  channel  )
190190    {
191-         decrement ( channel , addressToInUseChannelCount  );
191+         BoltServerAddress  address  = serverAddress ( channel  );
192+         if  ( !addressToInUseChannelCount .containsKey ( address  ) )
193+         {
194+             throw  new  IllegalStateException ( "No count exists for address '"  + address  + "' in the 'in use' count"  );
195+         }
196+         Integer  count  = addressToInUseChannelCount .get ( address  );
197+         addressToInUseChannelCount .put ( address , count  - 1  );
192198    }
193199
194200    private  void  incrementIdle ( Channel  channel  )
@@ -198,7 +204,13 @@ private void incrementIdle( Channel channel )
198204
199205    private  void  decrementIdle ( Channel  channel  )
200206    {
201-         decrement ( channel , addressToIdleChannelCount  );
207+         BoltServerAddress  address  = serverAddress ( channel  );
208+         if  ( !addressToIdleChannelCount .containsKey ( address  ) )
209+         {
210+             throw  new  IllegalStateException ( "No count exists for address '"  + address  + "' in the 'idle' count"  );
211+         }
212+         Integer  count  = addressToIdleChannelCount .get ( address  );
213+         addressToIdleChannelCount .put ( address , count  - 1  );
202214    }
203215
204216    private  void  increment ( Channel  channel , Map <BoltServerAddress ,Integer > countMap  )
@@ -207,15 +219,4 @@ private void increment( Channel channel, Map<BoltServerAddress,Integer> countMap
207219        Integer  count  = countMap .computeIfAbsent ( address , k  -> 0  );
208220        countMap .put ( address , count  + 1  );
209221    }
210- 
211-     private  void  decrement ( Channel  channel , Map <BoltServerAddress ,Integer > countMap  )
212-     {
213-         BoltServerAddress  address  = serverAddress ( channel  );
214-         if  ( !countMap .containsKey ( address  ) )
215-         {
216-             throw  new  IllegalStateException ( "No count exist for address '"  + address  + "'"  );
217-         }
218-         Integer  count  = countMap .get ( address  );
219-         countMap .put ( address , count  - 1  );
220-     }
221222}
0 commit comments