private void printSQLWarnings() { if (logger.isDebugEnabled()) { try { SQLWarning warning = handle.getConnection().getWarnings(); while (warning != null) { logger.debug("[SQL WARNING] {}", warning); warning = warning.getNextWarning(); } handle.getConnection().clearWarnings(); } catch (final SQLException e) { logger.debug("Error whilst retrieving SQL warnings", e); } } }
private static void assertStartsWithExpectedWarnings(SQLWarning warning, SQLWarning expected) { assertNotNull(expected); assertNotNull(warning); while (true) { assertWarningsEqual(warning, expected); warning = warning.getNextWarning(); expected = expected.getNextWarning(); if (expected == null) { return; } assertNotNull(warning); } }
private synchronized void addWarning(PrestoWarning warning) { requireNonNull(warning, "warning is null"); if (lastWarning == null) { lastWarning = new PrestoSqlWarning(warning); } else { lastWarning.setNextWarning(new PrestoSqlWarning(warning)); } if (firstWarning == null) { firstWarning = lastWarning; } else { lastWarning = lastWarning.getNextWarning(); } }
/** * Print the specified warning on the console, as well as * any warnings that are returned from {@link SQLWarning#getNextWarning}. * * @param warn * the {@link SQLWarning} to print */ void showWarnings(SQLWarning warn) { if (warn == null) { return; } if (seenWarnings.get(warn) == null) { // don't re-display warnings we have already seen seenWarnings.put(warn, new java.util.Date()); handleSQLException(warn); } SQLWarning next = warn.getNextWarning(); if (next != warn) { showWarnings(next); } }
private void processWarnings(final boolean forced) throws SQLException { if (--warningCheckCounter == 0 || forced) { warningCheckCounter = CHECK_WARNINGS_AFTER_COUNT; for (SQLWarning w = connection().getWarnings(); w != null; w = w.getNextWarning()) { LOGGER.debug("Server-side message: '{}', state = {}, code = {}", w.getMessage(), w.getSQLState(), w.getErrorCode()); } } } };
"', error code '" + warningToLog.getErrorCode() + "', message [" + warningToLog.getMessage() + "]"); warningToLog = warningToLog.getNextWarning();
private void printWarnings(SQLWarning warning, boolean force) throws SQLException { SQLWarning initialWarning = warning; if (showWarnings || force) { while (warning != null) { log(warning + " sql warning", showWarnings ? Project.MSG_WARN : Project.MSG_VERBOSE); warning = warning.getNextWarning(); } } if (initialWarning != null) { setWarningProperty(); } if (treatWarningsAsErrors && initialWarning != null) { throw initialWarning; } }
private static SQLWarning fromPrestoWarnings(List<PrestoWarning> warnings) { requireNonNull(warnings, "warnings is null"); assertFalse(warnings.isEmpty()); Iterator<PrestoWarning> iterator = warnings.iterator(); PrestoSqlWarning first = new PrestoSqlWarning(iterator.next()); SQLWarning current = first; while (iterator.hasNext()) { current.setNextWarning(new PrestoSqlWarning(iterator.next())); current = current.getNextWarning(); } return first; }
public void run() { try { // TODO cross-check result against actual // number // of rows sent. ps.executeUpdate(); // Pump out any warnings and save them. SQLWarning warning = ps.getWarnings(); while ( warning != null ) { warnings.add( warning.getMessage() ); warning = warning.getNextWarning(); } } catch ( SQLException ex ) { this.ex = ex; } finally { try { data.db.closePreparedStatement( ps ); } catch ( KettleException ke ) { // not much we can do with this } finally { ps = null; } } }
/** * Throw an SQLWarningException if we're not ignoring warnings, * else log the warnings (at debug level). * @param stmt the current JDBC statement * @throws SQLWarningException if not ignoring warnings * @see org.springframework.jdbc.SQLWarningException */ protected void handleWarnings(Statement stmt) throws SQLException { if (isIgnoreWarnings()) { if (logger.isDebugEnabled()) { SQLWarning warningToLog = stmt.getWarnings(); while (warningToLog != null) { logger.debug("SQLWarning ignored: SQL state '" + warningToLog.getSQLState() + "', error code '" + warningToLog.getErrorCode() + "', message [" + warningToLog.getMessage() + "]"); warningToLog = warningToLog.getNextWarning(); } } } else { handleWarnings(stmt.getWarnings()); } }
/** * Generic algorithm to walk the hierarchy of SQLWarnings * * @param warning The warning to walk * @param handler The handler */ public void walkWarnings( SQLWarning warning, WarningHandler handler) { if ( warning == null || !handler.doProcess() ) { return; } handler.prepare( warning ); while ( warning != null ) { handler.handleWarning( warning ); warning = warning.getNextWarning(); } }
@Test public void testSqlWarning() { ImmutableList.Builder<PrestoWarning> builder = ImmutableList.builder(); for (int i = 0; i < 3; i++) { builder.add(new PrestoWarning(new WarningCode(i, "CODE_" + i), "warning message " + i)); } List<PrestoWarning> warnings = builder.build(); SQLWarning warning = fromPrestoWarnings(warnings); assertEquals(Iterators.size(warning.iterator()), warnings.size()); assertWarningsEqual(warning, new PrestoSqlWarning(warnings.get(0))); assertWarningsEqual(warning.getNextWarning(), new PrestoSqlWarning(warnings.get(1))); assertWarningsEqual(warning.getNextWarning().getNextWarning(), new PrestoSqlWarning(warnings.get(2))); }
for (int rows = 0; !queryCreationFuture.isDone() && rows < 10; ) { if (resultSet.next()) { for (SQLWarning warning = resultSet.getWarnings(); warning.getNextWarning() != null; warning = warning.getNextWarning()) { assertTrue(currentWarnings.add(new WarningEntry(warning.getNextWarning())));
assertTrue(currentWarnings.add(new WarningEntry(warning))); for (int warnings = 1; !queryCreationFuture.isDone() && warnings < 100; warnings++) { for (SQLWarning nextWarning = warning.getNextWarning(); nextWarning == null; nextWarning = warning.getNextWarning()) { warning = warning.getNextWarning(); assertTrue(currentWarnings.add(new WarningEntry(warning))); Thread.sleep(100);
/** * Throw a SQLWarningException if we're not ignoring warnings, else log the * warnings (at debug level). * * @param statement the current statement to obtain the warnings from, if there are any. * @throws SQLException if interaction with provided statement fails. * * @see org.springframework.jdbc.SQLWarningException */ protected void handleWarnings(Statement statement) throws SQLWarningException, SQLException { if (ignoreWarnings) { if (log.isDebugEnabled()) { SQLWarning warningToLog = statement.getWarnings(); while (warningToLog != null) { log.debug("SQLWarning ignored: SQL state '" + warningToLog.getSQLState() + "', error code '" + warningToLog.getErrorCode() + "', message [" + warningToLog.getMessage() + "]"); warningToLog = warningToLog.getNextWarning(); } } } else { SQLWarning warnings = statement.getWarnings(); if (warnings != null) { throw new SQLWarningException("Warning not ignored", warnings); } } }
se = ((SQLWarning)se).getNextWarning(); else se = se.getNextException();
new SQLWarning(warn.getMessage(), warn.getSQLState(), warn.getErrorCode()); SQLWarning nw = warn.getNextWarning(); while ( nw != null ) nw.getSQLState(), nw.getErrorCode())); nw = nw.getNextWarning();
private static void logSQLWarnings(final SQLWarning sqlWarning) { final Level level = Level.FINER; if (!LOGGER.isLoggable(level)) { return; } SQLWarning currentSqlWarning = sqlWarning; while (currentSqlWarning != null) { final String message = String.format("%s%nError code: %d, SQL state: %s", currentSqlWarning.getMessage(), currentSqlWarning.getErrorCode(), currentSqlWarning.getSQLState()); LOGGER.log(level, message, currentSqlWarning); currentSqlWarning = currentSqlWarning.getNextWarning(); } }
private static void logSQLWarnings(final SQLWarning sqlWarning) { final Level level = Level.FINER; if (!LOGGER.isLoggable(level)) { return; } SQLWarning currentSqlWarning = sqlWarning; while (currentSqlWarning != null) { final String message = String.format("%s%nError code: %d, SQL state: %s", currentSqlWarning.getMessage(), currentSqlWarning.getErrorCode(), currentSqlWarning.getSQLState()); LOGGER.log(level, message, currentSqlWarning); currentSqlWarning = currentSqlWarning.getNextWarning(); } }
public static void logAndClearWarnings(Connection con) throws SQLException { if (logger.isLoggable(MLevel.INFO)) { for(SQLWarning w = con.getWarnings(); w != null; w = w.getNextWarning()) logger.log(MLevel.INFO, w.getMessage(), w); } con.clearWarnings(); }