ffang commented on code in PR #2571:
URL: https://github.com/apache/cxf/pull/2571#discussion_r2299431518
##########
rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java:
##########
@@ -127,62 +128,95 @@ private static final class RefCount<T extends HttpClient>
{
this.finalizer = finalizer;
}
- RefCount<T> acquire() {
- count.incrementAndGet();
+ /**
+ * Acquire a reference. Throws if shutdown has begun.
+ */
+ synchronized RefCount<T> acquire() {
+ if (shuttingDown) {
Review Comment:
> ```
> RefCount<T> acquire() {
> while (true) {
> final long c = count.get();
> if (c == 0L) {
> throw new IllegalStateException("The client is already
shutdown");
> } else if (count.compareAndSet(c, c + 1)) {
> break;
> }
> }
> return this;
> }
> ```
If I read it correctly, with this code we always have
IllegalStateException("The client is already shutdown") even the first client
tries to acquire it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]