{
this.driver = this.database.createConnectionSource();
this.password = this.database.decodePassword(this.cluster.getDecoder());
this.pool = this.poolFactory.createPool(new ConnectionPoolProvider(this));
DialectFactory factory = ServiceLoaders.findService(new IdentifiableMatcher<DialectFactory>(this.database.parseVendor()), DialectFactory.class);
if (factory == null)
{
// Use default dialect
factory = ServiceLoaders.findRequiredService(DialectFactory.class);
}
Dialect dialect = factory.createDialect();
Connection connection = this.pool.take();
try
{