Skip to content

Commit 49a3521

Browse files
mp911degregturn
authored andcommitted
Discard messages if the conversation sink was cancelled
Fixes a potential memory leak.
1 parent fc1c5bf commit 49a3521

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/main/java/io/r2dbc/postgresql/client/ReactorNettyClient.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
3030
import io.netty.handler.logging.LogLevel;
3131
import io.netty.handler.logging.LoggingHandler;
32+
import io.netty.util.ReferenceCountUtil;
3233
import io.netty.util.internal.logging.InternalLogger;
3334
import io.netty.util.internal.logging.InternalLoggerFactory;
3435
import io.r2dbc.postgresql.message.backend.BackendKeyData;
@@ -145,7 +146,12 @@ private ReactorNettyClient(Connection connection) {
145146
receiver.sink.complete();
146147
this.conversations.poll();
147148
} else {
148-
receiver.sink.next(message);
149+
150+
if (receiver.sink.isCancelled()) {
151+
ReferenceCountUtil.release(message);
152+
} else {
153+
receiver.sink.next(message);
154+
}
149155
}
150156
}
151157
})

0 commit comments

Comments
 (0)