diff --git a/src/main/java/nl/nn/testtool/storage/database/DatabaseStorage.java b/src/main/java/nl/nn/testtool/storage/database/DatabaseStorage.java index d19dca28..e373ea1c 100644 --- a/src/main/java/nl/nn/testtool/storage/database/DatabaseStorage.java +++ b/src/main/java/nl/nn/testtool/storage/database/DatabaseStorage.java @@ -19,7 +19,6 @@ import java.io.StringReader; import java.lang.invoke.MethodHandles; import java.math.BigDecimal; -import java.sql.Blob; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Timestamp; @@ -39,7 +38,6 @@ import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementSetter; -import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -74,7 +72,7 @@ */ // Without proxyTargetClass = true the test webapp will give: Bean named 'proofOfMigrationStorage' is expected to be of // type 'nl.nn.testtool.storage.proofofmigration.ProofOfMigrationStorage' but was actually of type 'jdk.proxy3.$Proxy26' -@EnableTransactionManagement(proxyTargetClass = true) +// @EnableTransactionManagement(proxyTargetClass = true) // REQUIRES_NEW to prevent interference with transactions in the application using Ladybug. E.g. when an error occurs in // a Frank!Framework adapter the insert of the Ladybug report should not be rolled back (which happens otherwise because // transactions are thread bound and Ladybug runs in the same thread). With NOT_SUPPORTED PostgreSQL will complain about @@ -229,7 +227,7 @@ public void setValues(PreparedStatement ps) throws SQLException { i++; } } - ps.setBlob(i, new ByteArrayInputStream(reportBytes)); + ps.setBytes(i, reportBytes); i++; if (isStoreReportXml()) { ps.setClob(i, new StringReader(reportXml)); @@ -270,15 +268,15 @@ public Report getReport(Integer storageId) throws StorageException { String query = "select report from " + getTable() + " where " + getStorageIdColumn() + " = ?"; log.debug("Get report query: " + query); List result = ladybugJdbcTemplate.query(query, new Object[]{storageId}, new int[] {Types.INTEGER}, - (resultSet, rowNum) -> getReport(storageId, resultSet.getBlob(1))); + (resultSet, rowNum) -> getReport(storageId, resultSet.getBytes(1))); return result.get(0); } // StorageException is allowed by Storage.getReport(), hence no need to handle it in the lambda expression that will // call this method @SneakyThrows - private static Report getReport(Integer storageId, Blob blob) { - return Import.getReport(blob.getBinaryStream(), storageId, blob.length(), log); + private static Report getReport(Integer storageId, byte[] blob) { + return Import.getReport(new ByteArrayInputStream(blob), storageId, (long) blob.length, log); } @Override diff --git a/src/main/java/nl/nn/testtool/storage/database/DbmsSupport.java b/src/main/java/nl/nn/testtool/storage/database/DbmsSupport.java index 9c1e04c1..4c7dd75a 100644 --- a/src/main/java/nl/nn/testtool/storage/database/DbmsSupport.java +++ b/src/main/java/nl/nn/testtool/storage/database/DbmsSupport.java @@ -69,7 +69,7 @@ public String provideTrailingFirstRowsHint(int rowCount) { } public String getRowNumber(String order, String sort) { - if ("Oracle".equals(commonDatabaseName) || "Microsoft SQL Server".equals(commonDatabaseName)) { + if ("Oracle".equals(commonDatabaseName)) { return "row_number() over (order by "+order+(sort==null?"":" "+sort)+") "+getRowNumberShortName(); } return ""; diff --git a/src/main/resources/ladybug/DatabaseChangelog_Debug.xml b/src/main/resources/ladybug/DatabaseChangelog_Debug.xml index cffaa91d..86cf7d9e 100644 --- a/src/main/resources/ladybug/DatabaseChangelog_Debug.xml +++ b/src/main/resources/ladybug/DatabaseChangelog_Debug.xml @@ -3,7 +3,10 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.26.xsd" > - + + + + Add table LADYBUG