From 1074e2f72f7541218f8222be96021b4c6b842296 Mon Sep 17 00:00:00 2001 From: robokaso Date: Mon, 10 Nov 2008 15:06:50 +0000 Subject: [PATCH] RESOLVED - BATCH-909: Turn off getWarnings() call in JdbcCursorItemReader when ignoreWarnings is true getWarnings is called only if debug is enabled (given ignoreWarnings == true) --- .../item/database/JdbcCursorItemReader.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/JdbcCursorItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/JdbcCursorItemReader.java index eedf0d6a0..ab07fa93a 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/JdbcCursorItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/JdbcCursorItemReader.java @@ -178,7 +178,7 @@ public class JdbcCursorItemReader extends AbstractBufferedItemReaderItemStream i preparedStatementSetter.setValues(preparedStatement); } this.rs = preparedStatement.executeQuery(); - handleWarnings(preparedStatement.getWarnings()); + handleWarnings(preparedStatement); } catch (SQLException se) { close(null); @@ -237,17 +237,22 @@ public class JdbcCursorItemReader extends AbstractBufferedItemReaderItemStream i * * @see org.springframework.jdbc.SQLWarningException */ - private void handleWarnings(SQLWarning warnings) throws SQLWarningException { + private void handleWarnings(PreparedStatement pstmt) throws SQLWarningException, SQLException { if (ignoreWarnings) { - SQLWarning warningToLog = warnings; - while (warningToLog != null) { - log.debug("SQLWarning ignored: SQL state '" + warningToLog.getSQLState() + "', error code '" - + warningToLog.getErrorCode() + "', message [" + warningToLog.getMessage() + "]"); - warningToLog = warningToLog.getNextWarning(); + if (log.isDebugEnabled()) { + SQLWarning warningToLog = pstmt.getWarnings(); + while (warningToLog != null) { + log.debug("SQLWarning ignored: SQL state '" + warningToLog.getSQLState() + "', error code '" + + warningToLog.getErrorCode() + "', message [" + warningToLog.getMessage() + "]"); + warningToLog = warningToLog.getNextWarning(); + } } } - else if (warnings != null) { - throw new SQLWarningException("Warning not ignored", warnings); + else { + SQLWarning warnings = pstmt.getWarnings(); + if (warnings != null) { + throw new SQLWarningException("Warning not ignored", warnings); + } } }