notifyStatementCompleted();
notifyStatementCompleted(success);
    public int[] executeBatch() throws SQLException {        if (closed) throw new FBSQLException("Statement is closed");        if (statementListener.getConnection().getAutoCommit())            addWarning(new SQLWarning("Batch updates should be run "                    + "with auto-commit disabled.", "1000"));        Object syncObject = getSynchronizationObject();        notifyStatementStarted();        synchronized (syncObject) {            try {                LinkedList responses = new LinkedList();                boolean commit = false;                try {                    Iterator iter = batchList.iterator();                    while (iter.hasNext()) {                        String sql = (String) iter.next();                        try {                            boolean hasResultSet = internalExecute(sql);                            if (hasResultSet)                                throw new BatchUpdateException(                                        toArray(responses));                            else                                responses.add(new Integer(getUpdateCount()));                        } catch (GDSException ge) {                            throw new BatchUpdateException(ge.getMessage(),                                    FBSQLException.SQL_STATE_GENERAL_ERROR, ge                                            .getFbErrorCode(),                                    toArray(responses));                        }                    }                    commit = true;                    return toArray(responses);                } finally {                    clearBatch();                }            } finally {                notifyStatementCompleted();            }        }    }