[ https://issues.apache.org/jira/browse/HTTPCLIENT-2379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17993128#comment-17993128 ]
Arturo Bernal commented on HTTPCLIENT-2379: ------------------------------------------- [~olegk] The counter logic itself looks fine IMO—the issue seems to be in the *second call* to {{release()}} on the same {{PoolEntry}} after it has already been handed back to the parent pool. Adding this one-line guard in {{H2SharingConnPool#release}} turns that duplicate call into a no-op and keeps the “count-zero-only-once” invariant intact: {code:java} if (perRoutePool != null && perRoutePool.getCount(entry) == 0) { return; // duplicate release – ignore } {code} With this check the first release delegates once (as designed); later releases are ignored, so the delegate pool never sees the entry again and the {{IllegalStateException}} disappears. I'm saying something stupid?? > Multiple removal of same PoolEntry causes IllegalStateException in > H2SharingConnPool > ------------------------------------------------------------------------------------ > > Key: HTTPCLIENT-2379 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2379 > Project: HttpComponents HttpClient > Issue Type: Bug > Components: HttpClient (async) > Affects Versions: 5.5 > Reporter: yhzdys > Priority: Major > Fix For: 5.5.1, 5.6-alpha1 > > Time Spent: 2h 40m > Remaining Estimate: 0h > > After enabling messageMultiplexing, the H2SharingConnPool is used to reuse > PoolEntry. > When making more than one request using the same connection, if the > connection is closed, > the pool.release(entry, reusable) method at H2SharingConnPool.java:183 will > throw the following exception: > ~~~java > throw new IllegalStateException("Pool entry is not present in the set of > leased entries"); > ~~~ > This occurs because the same connection is being removed multiple times. > https://github.com/yhzdys/httpcomponents-client/commit/c8256b33c3adb45cfa2a49efb2dacfb611da9ac1 -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org