From 41102aca352d5027944ff99a62b9e2e17777eea4 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 8 May 2020 23:32:24 +1200 Subject: [PATCH] Add clearBatch() on BatchedPstmt construction --- .../io/ebeaninternal/server/persist/BatchedPstmt.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java b/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java index d67c0ad2a..3bd73b543 100644 --- a/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java +++ b/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java @@ -53,8 +53,9 @@ public class BatchedPstmt implements SpiProfileTransactionEvent { /** * Create with a given statement. */ - public BatchedPstmt(PreparedStatement pstmt, boolean isGenKeys, String sql, SpiTransaction transaction) { + public BatchedPstmt(PreparedStatement pstmt, boolean isGenKeys, String sql, SpiTransaction transaction) throws SQLException { this.pstmt = pstmt; + this.pstmt.clearBatch(); this.isGenKeys = isGenKeys; this.sql = sql; this.transaction = transaction; @@ -92,7 +93,7 @@ public class BatchedPstmt implements SpiProfileTransactionEvent { private void flushStatementBatch() throws SQLException { final int[] rows = pstmt.executeBatch(); if (rows.length != list.size()) { - throw new IllegalStateException("Invalid state? rows:" + rows.length + " != " + list.size()); + throw new IllegalStateException("Invalid state on executeBatch, rows:" + rows.length + " != " + list.size()); } for (BatchPostExecute item : list) { item.postExecute(); @@ -156,8 +157,7 @@ public class BatchedPstmt implements SpiProfileTransactionEvent { try { results = pstmt.executeBatch(); if (results.length != list.size()) { - String s = "results array error " + results.length + " " + list.size(); - throw new SQLException(s); + throw new SQLException("Invalid state on executeBatch, rows:" + results.length + " != " + list.size()); } // check for concurrency exceptions... for (int i = 0; i < results.length; i++) {