@Override public void close() { IOUtils.closeQuietly(stream); DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } }
public <T> List<T> select(Connection connection, String sql, RowConverter<T> rowConverter) throws SQLException { PreparedStatement stmt = null; ResultSet rs = null; try { stmt = connection.prepareStatement(sql); rs = stmt.executeQuery(); List<T> result = new ArrayList<>(); while (rs.next()) { result.add(rowConverter.convert(rs)); } return result; } finally { DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } }
public Optional<DataStream> selectData(DbSession dbSession, String taskUuid) { PreparedStatement stmt = null; ResultSet rs = null; DataStream result = null; try { stmt = dbSession.getConnection().prepareStatement("SELECT input_data FROM ce_task_input WHERE task_uuid=? AND input_data IS NOT NULL"); stmt.setString(1, taskUuid); rs = stmt.executeQuery(); if (rs.next()) { result = new DataStream(stmt, rs, rs.getBinaryStream(1)); return Optional.of(result); } return Optional.empty(); } catch (SQLException e) { throw new IllegalStateException("Fail to select data of CE task " + taskUuid, e); } finally { if (result == null) { DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } } }
private IssueIteratorInternal createIterator() { try { setParameters(stmt); return new IssueIteratorInternal(stmt); } catch (SQLException e) { DatabaseUtils.closeQuietly(stmt); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
private Measures selectMeasures(String projectUuid) { Measures measures = new Measures(); ResultSet rs = null; try { AtomicInteger index = new AtomicInteger(1); measuresStatement.setString(index.getAndIncrement(), projectUuid); METRIC_KEYS.forEach(DatabaseUtils.setStrings(measuresStatement, index::getAndIncrement)); measuresStatement.setBoolean(index.getAndIncrement(), ENABLED); rs = measuresStatement.executeQuery(); while (rs.next()) { readMeasure(rs, measures); } return measures; } catch (Exception e) { throw new IllegalStateException(String.format("Fail to execute request to select measures of project %s", projectUuid), e); } finally { DatabaseUtils.closeQuietly(rs); } }
@Override public void close() { try { iterator.close(); } finally { DatabaseUtils.closeQuietly(stmt); session.close(); } }
@Test public void should_not_fail_on_statement_errors() throws SQLException { Statement statement = mock(Statement.class); doThrow(new SQLException()).when(statement).close(); DatabaseUtils.closeQuietly(statement); // no failure verify(statement).close(); // just to be sure }
@Test public void should_not_fail_on_connection_errors() throws SQLException { Connection connection = mock(Connection.class); doThrow(new SQLException()).when(connection).close(); DatabaseUtils.closeQuietly(connection); // no failure verify(connection).close(); // just to be sure }
@Test public void should_support_null_connection() { DatabaseUtils.closeQuietly((Connection) null); // no failure }
@Test public void should_not_fail_on_resulset_errors() throws SQLException { ResultSet rs = mock(ResultSet.class); doThrow(new SQLException()).when(rs).close(); DatabaseUtils.closeQuietly(rs); // no failure verify(rs).close(); // just to be sure }
@Test public void should_close_statement_and_resultset() throws Exception { Connection connection = dbTester.openConnection(); try { PreparedStatement statement = connection.prepareStatement(selectDual()); ResultSet rs = statement.executeQuery(); DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(statement); assertThat(isClosed(statement)).isTrue(); assertThat(isClosed(rs)).isTrue(); } finally { DatabaseUtils.closeQuietly(connection); } }
@Test public void should_close_connection() throws Exception { Connection connection = dbTester.openConnection(); assertThat(isClosed(connection)).isFalse(); DatabaseUtils.closeQuietly(connection); assertThat(isClosed(connection)).isTrue(); }
@Override public void close() { IOUtils.closeQuietly(stream); DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } }
public <T> List<T> select(Connection connection, String sql, RowConverter<T> rowConverter) throws SQLException { PreparedStatement stmt = null; ResultSet rs = null; try { stmt = connection.prepareStatement(sql); rs = stmt.executeQuery(); List<T> result = new ArrayList<>(); while (rs.next()) { result.add(rowConverter.convert(rs)); } return result; } finally { DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } }
private IssueIteratorInternal createIterator() { try { setParameters(stmt); return new IssueIteratorInternal(stmt); } catch (SQLException e) { DatabaseUtils.closeQuietly(stmt); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
public Optional<DataStream> selectData(DbSession dbSession, String taskUuid) { PreparedStatement stmt = null; ResultSet rs = null; DataStream result = null; try { stmt = dbSession.getConnection().prepareStatement("SELECT input_data FROM ce_task_input WHERE task_uuid=? AND input_data IS NOT NULL"); stmt.setString(1, taskUuid); rs = stmt.executeQuery(); if (rs.next()) { result = new DataStream(stmt, rs, rs.getBinaryStream(1)); return Optional.of(result); } return Optional.empty(); } catch (SQLException e) { throw new IllegalStateException("Fail to select data of CE task " + taskUuid, e); } finally { if (result == null) { DatabaseUtils.closeQuietly(rs); DatabaseUtils.closeQuietly(stmt); } } }
private Measures selectMeasures(String projectUuid, @Nullable String analysisUuid) { Measures measures = new Measures(); if (analysisUuid == null || metricKeysByIds.isEmpty()) { return measures; } ResultSet rs = null; try { measuresStatement.setString(1, projectUuid); measuresStatement.setString(2, analysisUuid); rs = measuresStatement.executeQuery(); while (rs.next()) { readMeasure(rs, measures); } return measures; } catch (Exception e) { throw new IllegalStateException(String.format("Fail to execute request to select measures of project %s, analysis %s", projectUuid, analysisUuid), e); } finally { DatabaseUtils.closeQuietly(rs); } }
@Override public void close() { try { iterator.close(); } finally { DatabaseUtils.closeQuietly(stmt); session.close(); } }