1 package org.davidmoten.rx.jdbc.pool.internal; 2 3 import java.sql.Connection; 4 import java.sql.Statement; 5 6 import io.reactivex.functions.Predicate; 7 8 public final class HealthCheckPredicate implements Predicate<Connection> { 9 10 private final String sql; 11 12 public HealthCheckPredicate(String sql) { 13 this.sql = sql; 14 } 15 16 @Override 17 public boolean test(Connection c) throws Exception { 18 try (Statement s = c.createStatement()) { 19 s.executeQuery(sql).close(); 20 return true; 21 } catch (Throwable t) { 22 return false; 23 } 24 } 25 }