Fixed - MasterConnectionPool might throw an NPE #6475

pull/4498/merge
mrniko 6 days ago
parent 16d7496148
commit 83471b8f96

@ -180,9 +180,6 @@ public class MasterSlaveEntry {
if (!config.isSlaveNotUsed()) { if (!config.isSlaveNotUsed()) {
addSlaveEntry(masterEntry); addSlaveEntry(masterEntry);
} }
masterConnectionPool.addEntry(masterEntry);
masterPubSubConnectionPool.addEntry(masterEntry);
return client; return client;
}); });
}).whenComplete((r, e) -> { }).whenComplete((r, e) -> {
@ -537,8 +534,6 @@ public class MasterSlaveEntry {
} }
private void removeMaster(ClientConnectionsEntry masterEntry) { private void removeMaster(ClientConnectionsEntry masterEntry) {
masterConnectionPool.removeEntry(masterEntry);
masterPubSubConnectionPool.removeEntry(masterEntry);
removeSlaveEntry(masterEntry); removeSlaveEntry(masterEntry);
masterEntry.nodeDown(); masterEntry.nodeDown();
masterEntry.shutdownAsync(); masterEntry.shutdownAsync();

@ -46,7 +46,7 @@ abstract class ConnectionPool<T extends RedisConnection> {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
protected final Queue<ClientConnectionsEntry> entries = new ConcurrentLinkedQueue<>(); final Queue<ClientConnectionsEntry> entries = new ConcurrentLinkedQueue<>();
final ConnectionManager connectionManager; final ConnectionManager connectionManager;

@ -33,6 +33,7 @@ import java.util.concurrent.CompletableFuture;
* *
*/ */
public class MasterConnectionPool extends ConnectionPool<RedisConnection> { public class MasterConnectionPool extends ConnectionPool<RedisConnection> {
public MasterConnectionPool(MasterSlaveServersConfig config, public MasterConnectionPool(MasterSlaveServersConfig config,
ConnectionManager connectionManager, MasterSlaveEntry masterSlaveEntry) { ConnectionManager connectionManager, MasterSlaveEntry masterSlaveEntry) {
super(config, connectionManager, masterSlaveEntry); super(config, connectionManager, masterSlaveEntry);
@ -48,7 +49,7 @@ public class MasterConnectionPool extends ConnectionPool<RedisConnection> {
@Override @Override
public CompletableFuture<RedisConnection> get(RedisCommand<?> command, boolean trackChanges) { public CompletableFuture<RedisConnection> get(RedisCommand<?> command, boolean trackChanges) {
return acquireConnection(command, entries.peek(), trackChanges); return acquireConnection(command, masterSlaveEntry.getEntry(), trackChanges);
} }
} }

@ -38,7 +38,7 @@ public class MasterPubSubConnectionPool extends PubSubConnectionPool {
@Override @Override
public CompletableFuture<RedisPubSubConnection> get(RedisCommand<?> command, boolean trackChanges) { public CompletableFuture<RedisPubSubConnection> get(RedisCommand<?> command, boolean trackChanges) {
return acquireConnection(command, entries.peek(), trackChanges); return acquireConnection(command, masterSlaveEntry.getEntry(), trackChanges);
} }
} }

Loading…
Cancel
Save