void statementClosed(CassandraPreparedStatement preparedStatement) { StatementEvent event = new StatementEvent(this, preparedStatement); for (StatementEventListener listener : statementEventListeners) { listener.statementClosed(event); } String cql = preparedStatement.getCql(); Set<CassandraPreparedStatement> freeStatements = freePreparedStatements.get(cql); Set<CassandraPreparedStatement> usedStatements = usedPreparedStatements.get(cql); usedStatements.remove(preparedStatement); preparedStatement.resetResults(); try { preparedStatement.clearParameters(); freeStatements.add(preparedStatement); } catch (SQLException e) { logger.error(e.getMessage()); } }
void statementErrorOccurred(CassandraPreparedStatement preparedStatement, SQLException sqlException) { StatementEvent event = new StatementEvent(this, preparedStatement, sqlException); for (StatementEventListener listener : statementEventListeners) { listener.statementErrorOccurred(event); } String cql = preparedStatement.getCql(); Set<CassandraPreparedStatement> usedStatements = usedPreparedStatements.get(cql); if (!(event.getSQLException() instanceof SQLRecoverableException)) { preparedStatement.close(); usedStatements.remove(preparedStatement); } }
private void close() throws SQLException { try { this.statement.close(); } catch (SQLException e) { this.handleException(e); } this.pooledConnection.removeStatement(this.statement); if (this.statement instanceof PreparedStatement) { List<StatementEventListener> statementEventListeners = this.pooledConnection.getStatementEventListeners(); if (statementEventListeners != null) { StatementEvent event = new StatementEvent(this.pooledConnection, (PreparedStatement) this.statement); for (StatementEventListener listener : statementEventListeners) { listener.statementClosed(event); } } } }
@Test public void testEventListeners() throws SQLException { CloudSpannerPooledConnection subject = createConnection(); ConnectionEventListener listener = Mockito.mock(ConnectionEventListener.class); subject.addConnectionEventListener(listener); subject.removeConnectionEventListener(listener); StatementEventListener statementListener = Mockito.mock(StatementEventListener.class); subject.addStatementEventListener(statementListener); subject.removeStatementEventListener(statementListener); subject.close(); }
void fireStatementEvent(StatementEvent event) throws SQLException { synchronized (this.statementEventListeners) { for (StatementEventListener listener : this.statementEventListeners.keySet()) { listener.statementClosed(event); } } }
/** * * Raise the statementClosed event for all the listeners when the * corresponding events occurs. * * @param statement The PreparedStatement that was closed * */ public void onStatementClose(PreparedStatement statement) { if (!statementEventListeners.isEmpty()) { StatementEvent event = new StatementEvent(this,statement); for (StatementEventListener l : statementEventListeners) { l.statementClosed(event); } } }
/** * Raise the statementClosed event for all the listeners when the * corresponding events occurs * @param statement The PreparedStatement that was closed */ public void onStatementClose(PreparedStatement statement) { if (!statementEventListeners.isEmpty()) { StatementEvent event = new StatementEvent(this,statement); for (StatementEventListener l : statementEventListeners) { l.statementClosed(event); } } }
/** * Raise the statementClosed event for all the listeners when the * corresponding events occurs * @param statement PreparedStatement */ public void onStatementClose(PreparedStatement statement) { if (!statementEventListeners.isEmpty()){ StatementEvent event = new StatementEvent(this,statement); for (StatementEventListener l : statementEventListeners) { l.statementClosed(event); } } }
/** * Raise the statementErrorOccurred event for all the listeners when the * corresponding events occurs * @param statement PreparedStatement * @param sqle SQLException */ public void onStatementErrorOccurred(PreparedStatement statement,SQLException sqle) { if (!statementEventListeners.isEmpty()){ StatementEvent event = new StatementEvent(this,statement,sqle); for (StatementEventListener l : statementEventListeners) { l.statementErrorOccurred(event); } } }