title: BoneCP doesn't recover from broken connection
body: <p>I have a problem with BoneCP (0.7.1 RELEASE). I though that <code>BoneCP.getConnection()</code> ensures it would return Connection object assuming that DB is alive.</p>
  
  <p>Here is how I configured my pool</p>
  
  <pre><code>private void setupConnectionPool() throws SQLException
  {
      // setup the connection pool
      String connectUri = "jdbc:mysql://master-mysql:3306/base?zeroDateTimeBehavior=convertToNull&amp;tinyInt1isBit=false&amp;useCompression=true";
  
      BoneCPConfig config = new BoneCPConfig();
      config.setJdbcUrl(connectUri);
      config.setUsername("dbapp");
      config.setPassword("meh");
      config.setMinConnectionsPerPartition(5);
      config.setMaxConnectionsPerPartition(10);
      config.setPartitionCount(1);
      config.setConnectionTimeoutInMs(5 * 1000);
  
      this.connectionPool = new BoneCP(config); // setup the connection pool
  }
  </code></pre>
  
  <p>then somewhere in the code I use it like this</p>
  
  <pre><code>    // I'm using Apache DbUtils
      QueryRunner run = new QueryRunner();
      Object result = run.query(this.connectionPool.getConnection(), query, handler, start, limit);
  </code></pre>
  
  <p>Attempt to run this query throws <code>SQLException</code> with state <code>08S01</code> (Communications link failure).</p>
  
  <p>Subsequent call to <code>this.connectionPool.getConnection()</code> returns good connection.</p>
  
  <p>But isn't it a whole point of connection pool so that I don't have to handle cases of lost connection myself?</p>