Changes
Release History
| Version | Date | Description |
|---|---|---|
| 3.5.0 | Aug 11, 2026 | A documentation site overhaul (new tutorials, 10 database vendor guides, a class-by-class Core Components reference, and a new Developing DbUnit contributor section); several new capabilities including DbUnitExtension for native JUnit 5/6 lifecycle management, a JSON dataset format with a matching JSON ValueComparer, MariaDB and H2 2.x database support, expanded PostgreSQL json/jsonb and array type support, and an opt-in escape hatch for schemas with circular foreign keys; and a broad set of correctness and performance fixes spanning metadata handling, DTD/XML export, PostgreSQL null-safety and large-object handling, and FlatXmlProducer memory use |
| 3.4.0 | Jul 28, 2026 | Test-suite hardening (un-skip and strengthen dozens of disabled/no-op tests); add CachingConnectionProvider and reduce DefaultPrepAndExpectedTestCase's per-test connection churn; pin identifier case-folding to Locale.ENGLISH for Turkish-locale correctness; and a broad set of correctness fixes across export formats (XML, YAML, CSV, XLS, Ant), TimestampDataType timezone handling, InsertOperation/TransactionOperation, and resource-leak cleanups |
| 3.3.0 | Jul 22, 2026 | Performance improvements and fixes: speed up column index lookups, suppress RowOutOfBoundsException stack traces, buffer XML, CSV, DTD, and YAML output, cache DecimalFormat in XlsTable, restore DepthFirstSearch tests, fix DepthFirstSearch depth limit, cache DatabaseSequenceFilter dependency edges, topological sort in DatabaseSequenceFilter, single column-metadata fetch in ResultSetTableMetaData, precompute sort keys in SortedTable, reduce assertion loop overhead, reduce ReplacementTable scanning, flatten CompositeDataSet table merging, detect columns without exception flow in FlatXmlProducer, fix PrimaryKeyFilter result set leak, fix XlsDataSetWriter memory leak, skip timezone regex for plain timestamps, guard hot-path debug logging, fix SQLHelper result set leak, reuse query metadata in QueryTableIterator, fix XlsDataSet file stream leak, release consumed CSV rows early, lookup map for OrderedTableNameMap original names, primitive row index storage in RowFilterTable, set-based membership in Columns.mergeColumnsByName, extend ResultSetTableMetaData column-metadata cache to MySqlMetadataHandler and Db2MetadataHandler, fix XlsDataSetWriter StringIndexOutOfBoundsException for BigDecimal scale greater than 52, restore execution of 45 test methods silenced by missing @Test annotations, fix corrupted assertion in HandlersTest |
| 3.2.0 | Jun 4, 2026 | GH action updates, extract UTs from ITs, rename test methods, add DataSetBuilder, improve test infra, improve UT coverage, bump HSQLDB, improve IT coverage, fix table lookup with case-sensitive databases, fix metadata table name lookups, convert UTs to ITs, OracleSdoGeometryDataType test coverage, fix ScrollableResultSetTable, document profile unsupportedFeatures, correct profile unsupportedFeatures, configure DB2, fix SQLHelper NPE, fix TruncateTableOperation for DB2 |
| 3.1.0 | May 11, 2026 | Lower DefaultPrepAndExpectedTestCase log levels, build DB config, GitHub CI, reproducible builds, change to Central Portal publishing, IsActualGreaterThanExpectedWithIgnoreMillisValueComparer, IsActualGreaterThanOrEqualToExpectedWithIgnoreMillisValueComparer, GitHub config, convert docs to Asciidoc, version bumps, DefaultPrepAndExpectedTestCase.runTestSteps(), auto-publish SNAPSHOTS |
| 3.0.0 | Jan 25, 2025 | JUnit 5 update, ValueComparers constants, Add TableDecoratorDataSet and GeneratedColumnFilter, Postgresql dep scope, IOUtils NoClassDefFoundError, PostgreSQLOidDataType.setSqlValue(): use unwrap(), Oracle NClob, XML DataTypes: use unwrap() |
| 2.8.0 | Jun 2, 2024 | YAML dataset |
| 2.7.3 | Feb 12, 2022 | new ValueComparers, unwrap PGConnection, Timestamp DST, UUID NPE, OracleClobDataType CCE, Operation multiple dataset sources, PostGIS 2021.1.0 |
| 2.7.2 | Jul 27, 2021 | DefaultPrepAndExpectedTestCase getConnection(), more case sensitive tables |
| 2.7.1 | Jul 22, 2021 | Apache POI 4.1.0, Maven relativePath warning, UniqueIdentifierType: change caught exception for Java 12, Set some dependencies optional, Remove commons-io, commons-collections deps, case sensitive tables |
| 2.7.0 | Feb 23, 2020 | DefaultPrepAndExpectedTestCase.makeAdditionalColumnInfo NPE, PostgreSQL driver update, DefaultPrepAndExpectedTestCase.verifyData() sorting, Relative date/time syntax, Travis CI, Fix MSSQL identity column filter, Fix CachedDataSet, IsActualContainingExpectedStringValueComparer, Fix FilteredDataSet case sensitivity, Fix DatabaseDataSet schema normalisation, Fix IsActualWithinToleranceOfExpectedTimestampValueComparer value casting, MSSQL datetimeoffset, Fix FlatXml set null value for different column name cases |
| 2.6.0 | Oct 13, 2018 | ValueComparers, PostgreSQL OID, POI 3.17, Java 8 tests, database integration tests, changes links, devguide.apt created, dbunit.properties, expected and definition tables verifier, JavaDoc gen, JDK 8 |
| 2.5.4 | Aug 20, 2017 | Doc update, MSSQL IdentityInsertOperation commits, streamed export, blobs in datasets |
| 2.5.3 | Aug 21, 2016 | DefaultPrepAndExpectedTestCase config, TimestampDataType.typeCast(), escape pattern for table name, DefaultPrepAndExpectedTestCase.verifyData() connection, XlsTable timezone, OracleXMLType, 'true' 'false' for numeric fields, XlsDataSetWriter cellstyle caching, ForeignKeyRelationshipEdge.compareTo, new CI, POM cleanup, ReplacementDataSet and DbUnitAssert case sensitive table names, XmlWriter |
| 2.5.2 | Apr 8, 2016 | Lost dbunit.org, toString() tables, respect DEFAULTs, multi-schema, PrepAndExpectedTestCaseSteps |
| 2.5.1 | April 11, 2015 | allowEmptyFields property, column aliases POI 3.11, |
| 2.5.0 | Apr 24, 2014 | CSV dataset, PostGres, Sonatype OSSRH, logging, Java 1.5, MySQL, UUIDs, autoincrement, DTD implied columns |
| 2.4.9 | Sep 30, 2012 | Additional toString()s, schema name usage, logging, timestamp, unique ID, table name in Operation exceptions, build with JDK 6. |
| 2.4.8 | Sep 2, 2010 | Bug fixes, timezone support, Oracle support improvements, new DataFileLoader, new PrepAndExpectedTestCase |
| 2.4.7 | Nov 09, 2009 | Bugfixes and some non breaking refactoring |
| 2.4.6 | Sep 20, 2009 | Bugfixes and some database specific additions |
| 2.4.5 | May 22, 2009 | Bugfixes and some few additions |
| 2.4.4 | Feb 24, 2009 | Bugfixes, some small additions |
| 2.4.3 | Jan 20, 2009 | Bugfixes, some small additions |
| 2.4.2 | Dec 17, 2008 | Bugfixes, some small additions |
| 2.4.1 | Dec 03, 2008 | Updates and bugfixes only |
| 2.4.0 | Nov 27, 2008 | Some API changes, features added, bugfixes |
| 2.3.0 | Sep 11, 2008 | Some API changes, features added, bugfixes, performance improvements in assertions. See migration guide for additional help |
| 2.2.3 | May 23, 2008 | Bugfixing release |
| 2.2.2 | May 5, 2008 | Bugfixing release |
| 2.2.1 | March 17, 2008 | Another official release after a long, long time... |
| 2.2 | December 28, 2006 | First official release in a long, long time... |
| 2.1 | May 31, 2004 | Multiple bugfixes and enhancements. |
| 2.0 | January 22, 2004 | Major release. |
| 1.5.6 | October 5, 2003 | |
| 1.5.5 | July 16, 2003 | |
| 1.5.1 | April 4, 2003 | |
| 1.5 | March 1, 2003 | |
| 1.4 | July 17, 2002 | |
| 1.3 | April 4, 2002 | |
| 1.2.4 | March 19, 2002 | |
| 1.2 | March 15, 2002 | |
| 1.1 | March 10, 2002 | |
| 1.0 | Febuary 27, 2002 | Initial public release. |
Release 3.5.0 – Aug 11, 2026
| Type | Changes | By |
|---|---|---|
![]() |
Add repo-root README.adoc, rendered natively by GitHub via Asciidoctor, so the repository landing page shows a pitch, build/reproducible-build badges, a pointer to the "dbUnit in 5 Minutes" tutorial, and links to the documentation site, Maven coordinates, GitHub Discussions, and CONTRIBUTING.md instead of nothing. Fixes 840. Thanks to jeffjensen. | jeffjensen |
![]() |
Add the "dbUnit in 5 Minutes" tutorial (fiveminutes.adoc): a complete, runnable walkthrough using the recommended DefaultPrepAndExpectedTestCase + JdbcDatabaseTester composition style against an in-memory H2 database, placed first in the "Using DbUnit" site menu. Fixes 841. Thanks to jeffjensen. | jeffjensen |
![]() |
Add the IDatabaseTester guide (testcases/IDatabaseTester.adoc), documenting the composition-based testing style CLAUDE.md and the site's own examples already prefer but that had no dedicated page: the interface hierarchy, setup/teardown lifecycle, IOperationListener hooks, and pairing with the new CachingConnectionProvider for connection reuse across test methods. Fixes 842. Thanks to jeffjensen. | jeffjensen |
![]() |
Fill in the JdbcBasedDBTestCase, DataSourceBasedDBTestCase, and JndiBasedDBTestCase pages, previously literal TODO stubs: each now documents what the class is, a minimal JUnit 5 example (including the @BeforeEach/@AfterEach super calls JUnit 5 requires that the prior "Getting Started" narrative omitted), and when to reach for it versus the IDatabaseTester composition alternative. Fixes 843. Thanks to jeffjensen. | jeffjensen |
![]() |
Expand datacomparisons/equality.adoc with the real equality-comparison examples (assertEquals usage, query-based snapshots, column-filtered comparison, row-ordering) moved from howto.adoc's "Dbunit data verification" section, bringing it to parity with its valuecomparer.adoc sibling. Fixes 844. Thanks to jeffjensen. | jeffjensen |
![]() |
Rewrite datatypes.adoc: its TOC listed 19 data types but the body documented only 2. Add a full reference table (Java type + notes) for all 19 org.dbunit.dataset.datatype types, and new detailed sections for NumberTolerantDataType/ToleratedDeltaMap, StringIgnoreCaseDataType, and UuidAwareBytesDataType (the latter's uuid'...' literal syntax was previously documented only in the FAQ, which now links here). Fixes 845. Thanks to jeffjensen. | jeffjensen |
![]() |
Document DatabaseConfig.PROPERTY_ALLOW_VERIFYTABLEDEFINITION_EXPECTEDTABLE_COUNT_MISMATCH in properties.adoc, the one PROPERTY_* constant missing from that page. Fixes 846. Thanks to jeffjensen. | jeffjensen |
![]() |
Extract connections.adoc from components.adoc's "IDatabaseConnection" section, and document CachingConnectionProvider (new in 3.4.0-SNAPSHOT, previously undocumented anywhere in the site) there. Nest the existing Properties & Features page under it in site.xml. Fixes 847. Thanks to jeffjensen. | jeffjensen |
![]() |
Extract datasets.adoc (IDataSet/ITable core contracts, DataSetBuilder) and 9 focused child pages under src/site/asciidoc/datasets/ (Flat XML, XML, CSV, Excel, YAML, Query-Based, Streaming, Data File Loader, Decorators) from components.adoc's kitchen-sink dataset-format catalog. Expanded the thinnest sections while extracting: CSV gained a full sample directory layout, Excel gained the Apache POI optional-dependency note, Streaming gained a DataSetProducerAdapter/BufferedConsumer mention, Data File Loader was written from scratch (previously only a two-line mention in howto.adoc), and Decorators absorbed SortedTable/SortedDataSet row-ordering content moved from howto.adoc. Fixes 848. Thanks to jeffjensen. | jeffjensen |
![]() |
Extract operations.adoc from components.adoc's DatabaseOperation table, adding the two entries missing from it: CloseConnectionOperation and the DatabaseOperation.TRANSACTION(op)/CLOSE_CONNECTION(op) factory methods. Fixes 849. Thanks to jeffjensen. | jeffjensen |
![]() |
Shrink components.adoc to a pointer stub now that connections.adoc, datasets.adoc, and operations.adoc have extracted its substantive content: every former in-page anchor still exists and redirects to its new home, so old bookmarks/search results don't 404. Remove "Core Components" from site.xml's nav menu; the page remains on disk, reachable only by direct URL. Fix all repo-wide cross-references to the old components.html#... anchors (howto.adoc, anttask.adoc, src/site/fml/faq.fml). The one former components.adoc section with no existing destination page, DatabaseSequenceFilter, seeds a new filters.adoc (Table Filters/DatabaseSequenceFilter only for now) that WI-16 will expand into the full consolidated Filters guide. Fixes 850. Thanks to jeffjensen. | jeffjensen |
![]() |
Trim howto.adoc from a 518-line monolith into a short "Getting Started" orientation hub, redistributing its substantive content to the pages that now own each topic. Add datacomparisons/failurehandling.adoc (FailureHandler/DiffCollectingFailureHandler, for collecting every comparison difference instead of failing on the first) and anttask/canoo-webtest-example.adoc (the dated Ant+Canoo WebTest walkthrough), both nested in site.xml under their parent page. Fix the one remaining repo-wide cross-reference to a howto.html anchor this trim removed (src/site/fml/faq.fml's columnfilter entry). Fixes 851. Thanks to jeffjensen. | jeffjensen |
![]() |
Reframe testcases.adoc (site menu label "Test Integration", URL unchanged) to explicitly present composition (IDatabaseTester) and inheritance (DBTestCase and its 3 subclasses) side by side, recommending composition per CLAUDE.md's stated preference while keeping inheritance fully documented. Move the DBTestCase subclass setup steps here from howto.adoc, correcting the JUnit 5 @BeforeEach/@AfterEach gap identified while writing the DBTestCase-family pages in WI-05. Fixes 852. Thanks to jeffjensen. | jeffjensen |
![]() |
Add testcases/MigratingToIDatabaseTester.adoc: why migrate a test class's *writing style* from DBTestCase to IDatabaseTester composition (as opposed to migration.adoc, which only covers dbUnit-version API differences), a before/after code pair, a DBTestCase-subclass-to-IDatabaseTester class mapping table, what does not change, and the pre-3.0.0 raw-TestCase+IDatabaseTester legacy pattern moved here from howto.adoc. Cross-link from migration.adoc since some readers will look for "migration" there first. Fixes 853. Thanks to jeffjensen. | jeffjensen |
![]() |
Expand filters.adoc (seeded in WI-12 with only DatabaseSequenceFilter) into the full consolidated Filters guide: table filters (IncludeTableFilter/ExcludeTableFilter, SequenceTableFilter, PrimaryKeyFilter, and the TablesDependencyHelper convenience API behind DatabaseSequenceFilter), column filters (IColumnFilter/DefaultColumnFilter, GeneratedColumnFilter), and row filters (IRowFilter/RowFilterTable, previously documented only in the FAQ). Add cross-links from the FAQ's columnfilter and rowfilter entries to this page. Fixes 854. Thanks to jeffjensen. | jeffjensen |
![]() |
Add 9 database-specific vendor guides under src/site/asciidoc/databases/ (db2, h2, hsqldb, mckoi, mssql, mysql, netezza, oracle, postgresql), one per org.dbunit.ext.* package, each previously represented only as a bare class-name bullet in properties.adoc's DataType Factory section. Each covers its IDataTypeFactory, IMetadataHandler (where one exists), connection preconfiguration class (where one exists), vendor-specific types/operations, and known quirks cross-linked to existing FAQ/properties entries instead of duplicating them. Oracle's page is the longest, covering both factory versions, proprietary LOB/XMLType access, and full SDO_GEOMETRY spatial object modeling. Nav wiring lands in WI-18. Fixes 855. Thanks to jeffjensen. | jeffjensen |
![]() |
Add databases.adoc index page listing all 9 vendor guides with a one-line "what's special here" teaser each, and wire the new top-level "Database-Specific Guides" site.xml menu with all 9 nested underneath. Fixes 856. Thanks to jeffjensen. | jeffjensen |
![]() |
Add datasets/sqlloader.adoc documenting org.dbunit.dataset.sqlloader (SqlLoaderControlDataSet), which had zero documentation anywhere in the site: what it is, the control-files directory layout, and a minimal loading example drawn from the class's own test fixtures. Cross-linked from the Oracle vendor guide since this format is Oracle-specific tooling despite living in the vendor-neutral dataset package. Fixes 857. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a "Where to Start" paragraph to index.adoc linking to dbUnit in 5 Minutes, Getting Started, Test Integration, and Datasets — the homepage previously had no body-text links to any of these, leaving discovery entirely to the left nav. Fixes 858. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a CachingConnectionProvider subsection to bestpractices.adoc's "Connection management strategies", presenting it as the recommended modern approach for connection reuse across test methods ahead of the dated "override closeConnection() with an empty body" technique, which the page previously covered without mentioning the new (3.4.0-SNAPSHOT) alternative at all. Fixes 859. Thanks to jeffjensen. | jeffjensen |
![]() |
Reframe intro.adoc: it is a reprinted early-2000s philosophical essay that read as if it might be current dbUnit-specific guidance. Add a framing note at the top pointing new users to the 5-minute tutorial/Getting Started first, rename its site.xml menu label to "Database Testing Concepts", and reposition it later in the menu, near Best Practices, instead of near the top. Fixes 860. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a Gradle dependency snippet to repos.adoc, which was previously Maven-only. Fixes 861. Thanks to jeffjensen. | jeffjensen |
![]() |
Final link audit for the documentation overhaul: fix 33 pages across testcases/, datasets/, datacomparisons/, databases/, and anttask/ that linked to root-level or cross-directory site pages with a site-root-relative path (e.g. link:/operations.html[...]); the AsciiDoc link macro emits such paths literally, breaking navigation once deployed under GitHub Pages' /dbunit-extension/ subpath (confirmed against the rendered site.xml-driven nav, which does compute correct relative paths, unlike body-content links). Reorder site.xml's "Using DbUnit" menu to match this plan's target structure exactly. Confirmed every .adoc page is nav-reachable except the intentionally excluded components.adoc (WI-12) and the empty README.adoc (WI-02). Fixes 862. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a "What This Automates For You" section to testcases/PrepAndExpectedTestCase.adoc, documenting DefaultPrepAndExpectedTestCase's automatic behaviors confirmed against its source (multi-file dataset composition, row sorting via SortedTable, expected/actual column type and case reconciliation, VerifyTableDefinition column include/exclude filtering, ValueComparer dispatch, and the expected-table/VerifyTableDefinition count safety check) that a hand-coded approach would otherwise need to implement itself. Fixes 863. Thanks to jeffjensen. | jeffjensen |
![]() |
Convert properties.adoc's per-item Feature Flags and Properties subsections into two consolidated tables (Flag/Feature ID/Default/Description; Property ID/Default/Description/Note), preserving all 17 existing anchors that other pages link to. Discovered and worked around a pre-existing rendering limitation in this project's Doxia/Asciidoctor table integration: the `a|` AsciiDoc-content cell style is not processed at all (anchors, bullet lists, and inline formatting inside it render as literal unprocessed text, confirmed empirically and reproduced against the unmodified pre-session file) -- plain `|` cells work correctly, including inline anchors, links, xrefs, and `+` explicit line breaks, so both new tables use plain cells exclusively. Fixes 864. Thanks to jeffjensen. | jeffjensen |
![]() |
Update maven dependency org.apache.maven.plugins:maven-jar-plugin from 3.5.0 to 3.5.1 (#817). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.junit.jupiter:junit-jupiter from 6.1.1 to 6.1.2 (#818). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.junit.platform:junit-platform-suite-engine from 6.1.1 to 6.1.2 (#818). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency ch.qos.logback:logback-classic from 1.5.38 to 1.6.0 (#819). Thanks to Dependabot. | dependabot |
![]() |
Replace TransactionOperationIT's dead JUnit-3-era runTest(String) feature gate (a leftover from the JUnit migration, never invoked under Jupiter) with a real @BeforeEach Assumptions.assumeTrue(environmentHasFeature(TestFeature.TRANSACTION)) check, restoring the class's intended skip-on-unsupported-database protection. Fixes 870. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove the dead JUnit-3-era runTest(String)/runTest() gating-hook override chain from AbstractDatabaseIT, AbstractTableTest, TruncateTableOperationIT, and InsertIdentityOperationIT: a leftover from the JUnit migration, never invoked under Jupiter (there is no TestCase base to call it), and redundant with each class's already-active @EnabledIfSystemProperty/@DisabledIfSystemProperty gating. Fixes 869. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove 27 orphaned JUnit Platform @Suite/@SelectClasses aggregator classes (AllTestsSuite/AllAssertionTestSuite/DatabaseTestSuite across nearly every package): a leftover JUnit 3/4-era "suite of suites" pattern that Surefire/Failsafe's filename-pattern test discovery (**/*Test.java, **/*IT.java) never executed, confirmed unreferenced by any CI workflow, build script, site doc, or IDE configuration. Fixes 871. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DbUnitAssertBase's JUnit-detection classpath probe, a leftover from the JUnit migration: it checked for junit.framework.Assert (JUnit 3/4), a class never present since the vintage engine was dropped, permanently disabling the JUnitFailureFactory path. Point the probe at org.junit.jupiter.api.Assertions instead. JUnitFailureFactory continues to return dbUnit's own DbComparisonFailure/DbAssertionFailedError (not a JUnit-framework-specific type) so that no dbUnit user incurs a runtime dependency on any particular test framework's failure classes; removed the stale comments and "TODO Junit5 update" left over from when this was last touched. Fixes 872. Thanks to jeffjensen. | jeffjensen |
![]() |
Split the enforcer plugin's requireJavaVersion rule from compileSource into a new enforcerJavaVersion property (17), since JUnit 6's class files require Java 17 to load (verified: bytecode major version 61) -- a build attempted on the previously-declared minimum, Java 8, could not run tests at all. compileSource (1.8) is unchanged and continues to set the shipped jar's bytecode level for consumers who don't need dbUnit's JUnit test-support classes. Fixes 873. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix the "dbUnit in 5 Minutes" tutorial's contradictory prerequisites: it told new users "JDK 8 or newer" immediately above "JUnit 5 (org.junit.jupiter:junit-jupiter) on your test classpath", but the current JUnit Jupiter coordinates (6.x) cannot load on Java 8-16. Clarify that JDK 17+ is needed to build/run the tutorial's test, while JDK 8 remains sufficient for dbUnit's core API alone. Fixes 874. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove the two Eclipse launch configs ("dbUnit tests - derby.launch", "dbUnit tests - hsqldb.launch"), last updated in 2024 and still set to Eclipse's JUnit 4 test loader, which cannot discover or run this project's pure-Jupiter test suite at all; both also carried dbunit.profile.unsupportedFeatures VM arguments that had drifted from the current *-dbunit.properties files. Removed rather than fixed, per maintainer confirmation that no one relies on Eclipse-native (non-Maven) test runs for these profiles. Fixes 875. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove the dead org.hamcrest:* pattern from dependabot.yml's test-dependencies group: hamcrest has not been a dependency since the JUnit migration (no hamcrestVersion property, no org.hamcrest import anywhere), so the pattern has silently matched zero packages on every Dependabot run. Fixes 876. Thanks to jeffjensen. | jeffjensen |
![]() |
Generalize current-tense "JUnit 5" wording to "JUnit 5/6" in fiveminutes.adoc, testcases.adoc, and testcases/MigratingToIDatabaseTester.adoc, now that the project ships and tests against JUnit 6 (same org.junit.jupiter:junit-jupiter coordinates, so this is a wording generalization, not a correction). Left historical-milestone text (index.adoc's "Since 3.0.0..." framing) and changes.xml action text untouched, since those describe what was true at the time. Fixes 877. Thanks to jeffjensen. | jeffjensen |
![]() |
Update github_actions dependency actions/setup-java from 5 to 5.6.0 (#879). Thanks to Dependabot. | dependabot |
![]() |
Fix AbstractDatabaseConnection.getRowCount(String, String) ignoring DatabaseConfig.PROPERTY_ESCAPE_PATTERN, mirroring the escape-pattern handling createTable() already applies, so a configured escape pattern is no longer silently dropped from the generated "select count(*)" SQL. Fixes 492. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DatabaseTableMetaData.getPrimaryKeys() returning an empty array whenever a configured PROPERTY_PRIMARY_KEY_FILTER matches zero columns for a table, instead of falling back to the table's database-declared primary key. Note: this makes the fallback unconditional whenever a filter yields zero columns for a table, which now overrides a filter deliberately configured to declare "this table has no PK". Fixes 628. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DatabaseDataSet.initialize() querying the driver/database info for debug logging after already opening the table metadata ResultSet instead of before, which could silently invalidate that still-open ResultSet on JDBC drivers that allow only a single active cursor per connection (e.g. SQL Anywhere, some legacy Sybase drivers). Fixes 460. Thanks to jeffjensen. | jeffjensen |
![]() |
Add opt-in DatabaseConfig.FEATURE_SORT_ALL_COLUMNS_WHEN_NO_PRIMARY_KEY, defaulting to off. When enabled, a table with no primary key is selected with an ORDER BY over all of its non-LOB columns instead of leaving row order database-defined (and thus nondeterministic); CLOB/BLOB columns are always excluded from that fallback sort since some databases (notably Oracle) reject LOB columns in ORDER BY. Fixes 171. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix FlatDtdWriter.write() emitting an invalid, unparseable "<!ELEMENT dataset (\n)>" DTD content model for a zero-table dataset. It now emits "<!ELEMENT dataset ANY>" instead, which FlatDtdProducer already parses correctly and which, unlike EMPTY, still tolerates the whitespace a pretty-printed empty dataset file typically contains. Fixes 542. Thanks to jeffjensen. | jeffjensen |
![]() |
Add MultiSchemaMySqlMetadataHandler, for a MySQL connection not restricted to a single schema (e.g. connecting as "root" specifically to work across several schemas at once with FEATURE_QUALIFIED_TABLE_NAMES enabled). MySqlMetadataHandler passes a null schema straight through as the JDBC catalog argument, which the JDBC spec defines as "search every catalog" but which MySQL Connector/J instead treats as "the connection's current catalog only" by default, silently hiding every other catalog's tables and producing NoSuchTableException for one of them. The new handler works around this by enumerating the connection's visible catalogs (skipping information_schema/mysql/performance_schema/sys) and unioning the per-catalog getTables()/getColumns()/getPrimaryKeys()/tableExists() results itself whenever no single schema is configured. Fixes 533. Thanks to jeffjensen. | jeffjensen |
![]() |
Add components/itable.adoc, a new Core Components reference page documenting ITable, ITableMetaData, Column, Columns, and ITableIterator, previously covered only in two sentences on datasets.adoc. Fixes 881. Thanks to jeffjensen. | jeffjensen |
![]() |
Add components/verifytabledefinition.adoc, a new Core Components reference page documenting VerifyTableDefinition's fields, all 5 constructor overloads, and its DefaultVerifyTableDefinitionVerifier construction-time validation, previously explained only through usage examples on PrepAndExpectedTestCase.adoc. Fixes 882. Thanks to jeffjensen. | jeffjensen |
![]() |
Add components/ioperationlistener.adoc, a new Core Components reference page documenting IOperationListener's 3 hook methods, DefaultOperationListener's connection-closing behavior, and NO_OP_OPERATION_LISTENER, previously undocumented anywhere in the site beyond one unexplained code reference. Fixes 883. Thanks to jeffjensen. | jeffjensen |
![]() |
Add components/assertion.adoc, a new Core Components reference page documenting how Assertion, DbUnitAssert, and DbUnitValueComparerAssert relate (the static facade and the two instance-based engines it delegates to) and their full method surface, previously introduced only in service of the equality-comparison topic. Fixes 884. Thanks to jeffjensen. | jeffjensen |
![]() |
Rewrite components.adoc from an anchor-preserving redirect stub into a real class-by-class "Core Components" index, grouped by area, linking to each class's topic page (or its new dedicated page, for the 4 classes that didn't have one). Add it back to site.xml's "Using DbUnit" nav, between Database-Specific Guides and Best Practices. Fixes 885. Thanks to jeffjensen. | jeffjensen |
![]() |
Add codingstandards/javastyle.adoc, the first page of a new "Developing DbUnit" contributor documentation section: general Java style rules, the Eclipse formatter tooling (java-codestyle-formatter.xml, plus the smaller legacy java-codestyle-formatter.epf), Checkstyle (confirmed wired only under Maven's reporting section, so it does not fail the build), Modernizer (confirmed bound to the verify phase and does fail the build), Lombok usage, and logger placement, none previously documented on the site. Fixes 887. Thanks to jeffjensen. | jeffjensen |
![]() |
Add codingstandards/javadoc.adoc, documenting the JavaDoc file-header, style, and tagging conventions. Corrects the prior @author/@since class-header example against actual current practice, confirmed by checking CachingConnectionProvider (added 3.4.0): class-level @since is still expected on new classes, but new @author tags are not. Fixes 888. Thanks to jeffjensen. | jeffjensen |
![]() |
Add codingstandards/testconventions.adoc, documenting dbUnit's own test-suite conventions (Test/IT/AT suffixes, the test method naming pattern, AssertJ whole-object assertion preference, and the Europe/Berlin fixed test timezone), each illustrated with a real example from the current test suite rather than an invented one. Explicitly disambiguates from the existing Test Integration page, which covers using dbUnit's own testers, not writing dbUnit's tests. Fixes 889. Thanks to jeffjensen. | jeffjensen |
![]() |
Add changelog.adoc, the single reference for changes.xml conventions: required attributes, valid type values, placement, the release description guidance, starting a new development cycle, and the Dependabot changelog automation (moved here from CONTRIBUTING.md, correcting its stale "master" references to "main"). Fixes 890. Thanks to jeffjensen. | jeffjensen |
![]() |
Add commits.adoc, documenting the full commit-requirements reference: atomic commits, same-commit bundling rules, the fixup!/autosquash workflow, git mv for renames, and the Conventional Commits type/scope/footer schema. Supersedes devguide.adoc's stale Fnnn/Bnnn ticket-prefix commit-message convention, which contradicted the Conventional Commits format actually in use. Fixes 891. Thanks to jeffjensen. | jeffjensen |
![]() |
Add github/issues.adoc, the first page of a new GitHub Workflow section: when to file an issue, the two issue templates, required labels/assignee/type/milestone metadata, and referencing an issue from a commit footer. Fixes 892. Thanks to jeffjensen. | jeffjensen |
![]() |
Add github/pullrequests.adoc: fork/branch-from-main, keeping current with main, opening a PR, what must be true before merge, and review expectations. Corrects devguide.adoc's stale "Keep Current with Master" guidance and confirms no CODEOWNERS or PR template exists today, rather than implying a gate that isn't there. Fixes 893. Thanks to jeffjensen. | jeffjensen |
![]() |
Add github/continuousintegration.adoc, documenting both CI workflows with their actual trigger conditions verified directly against the workflow files: build-any-branch-with-all-dbs.yml excludes doc-only paths, and publish-docs.yml only runs against main with no pull_request trigger, so no branch ever gets a published-site CI preview. Neither fact was documented anywhere before this page. Also notes the four unused legacy CI config files still present at the repo root. Fixes 894. Thanks to jeffjensen. | jeffjensen |
![]() |
Add codingstandards.adoc, a short index page linking Java Style & Tooling, JavaDoc Conventions, and Test Conventions. Fixes 895. Thanks to jeffjensen. | jeffjensen |
![]() |
Add github.adoc, a short index page linking Issues, Branching & Pull Requests, and Continuous Integration. Fixes 896. Thanks to jeffjensen. | jeffjensen |
![]() |
Rewrite devguide.adoc from a stale, kitchen-sink page (SourceForge-era license/JavaDoc example, an Fnnn/Bnnn commit-prefix convention contradicting actual Conventional Commits usage, "master" instead of "main," and a dead mail-lists.html link) into the "Developing DbUnit" section's orientation hub, with a Contributor Quick Start checklist and links to every page in the section. Wire site.xml's "Developing DbUnit" menu to the full new nested structure (Coding Standards and GitHub Workflow each with 3 children). Fixes 897. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a Quality Gates section to building.adoc listing what runs where and whether it fails the build, confirmed directly against pom.xml: Modernizer and Enforcer do fail the build, Checkstyle/JaCoCo/japicmp do not. Also note the Europe/Berlin fixed test timezone Surefire and Failsafe both force, previously undocumented anywhere on the site. Fixes 898. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a Troubleshooting section to integrationtests.adoc: grep the target-directory log files for the actual exception rather than relying solely on the Failsafe report summary. Fixes 899. Thanks to jeffjensen. | jeffjensen |
![]() |
Cross-link the new changelog.adoc from releasing.adoc's two changes.xml touch points, replacing a "see CONTRIBUTING.md" pointer to content that has moved. Fixes 900. Thanks to jeffjensen. | jeffjensen |
![]() |
Commit CONTRIBUTING.md as a short GitHub-native quick start pointing at the new "Developing DbUnit" site section instead of duplicating it: keeps the build/test commands inline, condenses the submitting-changes steps, and removes the ~80-line changes.xml/Dependabot-automation deep dive now owned by changelog.adoc. Fixes two stale "master" references (confirmed the real target branch is "main" via .github/workflows/dependabot-changelog.yml) and an overstated "enforced by Checkstyle" code-style claim. Fixes 901. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix all Javadoc warnings and errors reported by "mvnw site" (maven-javadoc-plugin's javadoc and test-javadoc reports), across 17 main and 5 test source files: @param tags left mismatched by earlier signature or rename changes (DataFileLoader#load, the fileloader constructors, DefaultPrepAndExpectedTestCase#makeAdditionalColumnInfo, FlatXmlWriter/XmlDataSetWriter's Charset constructors), stale @see/@link references to renamed test methods and to classes not visible from the main sourcepath (test-only DefaultPrepAndExpectedTestCase siblings, an ant-testutils class, a decades-old dead reference in DbUnitTaskIT), an unresolvable cross-package @throws type in IDataSet, unescaped angle brackets and ampersands in Semaphore/Sync/FlatXmlDataSet code samples, mistyped @Author/@Since tags in UniqueIdentifierType, an invalid standalone @inheritDoc, and two placeholder "@since <dbunit-version>" tags backfilled from git history (2.4.8, 2.4.7). Fixes 886. Thanks to jeffjensen. | jeffjensen |
![]() |
Run a full "mvnw clean install site" and fix everything it flagged. Removed the long-standing "FIXME remove -Xdoclint:none after JavaDoc cleanup" suppression from maven-javadoc-plugin's build and reporting configuration now that issue 886's cleanup is done, then fixed every doclint warning and error the removal surfaced across the main source tree: missing one-sentence class/interface/field summaries, including on the framework's core public API (IDatabaseConnection, IDatabaseTester, IDataSet, ITableMetaData, DataType, DatabaseOperation) whose methods were also missing @param/@return/@throws tags entirely; invalid HTML (unclosed and self-closing <p> tags, <code><pre> nesting, <xmp>/<tt> tags unsupported in HTML5, an unescaped "<null>" literal, a table missing <caption>) throughout Doug Lea's vendored util.concurrent classes and elsewhere; an unresolvable {@link ITable} reference from a missing import; a typo'd </cde> closing tag and out-of-sequence heading in RelativeDateTimeParser; @see tags illegally wrapping {@link}; and stale @throws Exception tags left over from ISearchCallback/ISearchAlgorithm's narrowing to SearchException. Also fixed the compiler warnings the same build surfaced: a dead compilerVersion parameter, 21 non-varargs calls to varargs methods with an inexact array argument type (several of which were silently mis-formatting SLF4J debug messages by spreading an array's elements across a single "{}" placeholder instead of logging the array itself), and Surefire/Failsafe's deprecated systemProperties style. Finally, fixed all 54 Checkstyle violations the pinned checkstyle 13.3.0 engine reported once its (previously flaky-cached) dependency resolved correctly: missing @author/@version Javadoc tags on 3.x-era classes that predate the project's tag convention, and two wildcard imports expanded to explicit ones. Fixes 902. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix all Asciidoctor warnings and errors reported by "mvnw site" rendering the doc site: two anttask.adoc/canoo-webtest-example.adoc heading levels jumping straight from the document title to level 2 instead of level 1; a numbered list in anttask.adoc splitting into a second, incorrectly-restarted list because its source-code block wasn't attached with a `+` list continuation; five anttask.adoc tables mistakenly using `!` as the cell separator instead of `|`, which Asciidoctor doesn't recognize without a matching `separator` attribute; and four literal "[...]" elision markers in intro.adoc being misparsed as (invalid, empty) AsciiDoc block attribute lists, now backslash-escaped. Confirmed the remaining "Fallback behaviour for node: admonition/open" notices (verified present for every NOTE:/TIP:/etc. admonition and every "--" open block sitewide, not specific to any one page) are an architectural limitation of the Doxia Sink interface itself per Asciidoctor's own Maven Tools docs, not fixable via content changes or a newer asciidoctor-parser-doxia-module version. Fixes 902. Thanks to jeffjensen. | jeffjensen |
![]() |
Update github_actions dependency actions/setup-java from 5.6.0 to 5.7.0 (#903). Thanks to Dependabot. | dependabot |
![]() |
Fix the Javadoc @param/@return/@throws gaps across the main source tree that issue 902's from-scratch doclint pass left unaddressed since they are warnings, not build-failing errors: missing one-sentence summaries on classes/interfaces/methods/fields whose doc block was tag-only (doclint's "no main description"), entirely missing or description-less @param/@return/@throws tags, and missing field/method comments including on org.dbunit.assertion.DbComparisonFailure's and PropertyChangeMulticaster's private fields and readObject/writeObject methods, which doclint checks regardless of visibility once a class implements Serializable. Fixes 904. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DefaultPrepAndExpectedTestCase#verifyData false-failing tables whose generated/identity column is the first column and excluded from comparison: it always sorted the actual table by all of its native columns - identity column included - while the expected table, which never declares that column, sorted by data content only; excludeColumns/includeColumns were applied to the comparison but never to the sort. When production code does not guarantee row insertion order (e.g. Hibernate reordering a batch insert), the database's generated-ID assignment order then diverges from the data-content order, misaligning same-data rows and failing the comparison despite both sides holding identical data. Add VerifyTableDefinition#sortOnFilteredColumnsOnly (default false, preserving prior behavior), implementing the opt-in toggle proposed in issue 676: when true, both tables sort by only their excludeColumns/includeColumns-filtered columns instead of by all native columns. Fixes 672. Thanks to lufecir. | jeffjensen |
![]() |
Fix NoSuchColumnException when two same-named tables merged by CompositeDataSet (e.g. from two separate flat-XML datasets both inserting into the same table) disagree on columns. A row belonging to a part that never declared an optional column crashed instead of being treated as not supplied, hitting InsertOperation's core insert path via equalsIgnoreMapping/getIgnoreMapping. InsertOperation.getIgnoreMapping/equalsIgnoreMapping now resolve such a column to ITable.NO_VALUE, the same sentinel already used to omit a column from a generated statement, instead of letting the row's NoSuchColumnException propagate. This is deliberately scoped to InsertOperation alone rather than CompositeTable itself: UpdateOperation and DeleteOperation bind every requested column's value directly with no equivalent ignore-mapping, so a genuinely missing column there must keep throwing instead of silently binding NULL into a WHERE clause. Fixes 708. Thanks to roel-tjin. | jeffjensen |
![]() |
Add a DataSourceDatabaseTester(DataSource, String schema, CachingConnectionProvider, DatabaseConfig) constructor and a new DatabaseConfig#copyPropertiesInto(DatabaseConfig) method, so per-connection properties and features (e.g. PROPERTY_DATATYPE_FACTORY for a specific database) can be applied to every connection a DataSourceDatabaseTester creates directly through the constructor, instead of requiring an IOperationListener#connectionRetrieved() override to reach into each connection's DatabaseConfig after the fact. Also fix DatabaseConfig's own constructor, which left FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES's underlying property value unset despite ALL_PROPERTIES declaring it non-nullable - harmless until copyPropertiesInto()'s full iteration over ALL_PROPERTIES became the first caller to round-trip every declared property through setProperty(), which enforces that constraint strictly. Fixes 707. Thanks to pmoukhataev. | jeffjensen |
![]() |
Add MariaDB support in a new org.dbunit.ext.mariadb package, separate from org.dbunit.ext.mysql since MariaDB is its own distinct, independently-branded product (mirroring how org.dbunit.ext.netezza stays independent of org.dbunit.ext.postgresql despite Netezza's Postgres lineage): MariaDbDataTypeFactory (extends MySqlDataTypeFactory to reuse its real, verified-shared type handling) declares "mariadb" as a valid database product, silencing the "might cause problems with the current database" warning, and recognizes MariaDB's native UUID (10.7+) and INET4/INET6 (10.10+) column types, which MariaDB Connector/J reports as SQL type OTHER with no MySQL equivalent; MariaDB's JSON type is a LONGTEXT alias and already worked via the inherited longtext handling. Add a mariadb-11-4 Maven profile and Docker-backed IT suite mirroring the existing mysql-9-20 profile, and a dedicated databases/mariadb.adoc site page (with its own navigation entry) instead of folding coverage into the MySQL page. Along the way, found and documented that MariaDB Connector/J, unlike MySQL Connector/J, has no nullCatalogMeansCurrent-equivalent default: an unfiltered DatabaseMetaData#getTables() call leaks information_schema/performance_schema tables into dbUnit's table map, surfacing as a SQLSyntaxErrorException the moment an operation like DELETE_ALL touches one of them, unless MySqlMetadataHandler is registered or nullCatalogMeansCurrent=true is added to the JDBC URL. Fixes 706. Thanks to estebanjgarcia. | jeffjensen |
![]() |
Add DefaultPrepAndExpectedTestCase.setFailureHandler(FailureHandler), letting verifyData() use a caller-supplied FailureHandler such as DiffCollectingFailureHandler instead of the default fail-fast DefaultFailureHandler; unset (null) keeps the pre-existing default behavior unchanged. Fixes 865. Thanks to jeffjensen. | jeffjensen |
![]() |
Add DbUnitExtension, a JUnit 5/6 extension that manages IDatabaseTester lifecycle via BeforeTestExecutionCallback and AfterTestExecutionCallback, enabling composition-based DbUnit tests without subclassing DatabaseTestCase. Fixes 751. Thanks to jeffjensen. | jeffjensen |
![]() |
Add JsonDataSet, JsonProducer, and JsonWriter for reading and writing JSON-format datasets, including Ant <export>/<operation>/<compare> task support via a new "json" format; null column values are omitted on write and resolved from missing keys on read. Fixes 752. Thanks to jeffjensen. | jeffjensen |
![]() |
Update maven dependency com.fasterxml.jackson.core:jackson-databind from 2.18.2 to 2.18.9 (#914). Thanks to Dependabot. | dependabot |
![]() |
Reduce FlatXmlProducer memory footprint: column names built from SAX attribute names, previously a fresh String per occurrence even when identical to one already seen elsewhere in the document, now flow through a per-parse cache so repeated column names across rows and tables share one String instance instead of each Column retaining its own duplicate copy. Attribute values are left untouched since they are far less likely to repeat. Fixes 512. Thanks to slandelle. | jeffjensen |
![]() |
Fix a flat XML/DTD table declared in the DTD but never appearing as a row element (a genuinely empty fixture table) being silently absent from the produced IDataSet: FlatXmlProducer only ever registered a table inside startElement()'s new-table handling, so a table with zero rows in a given fixture never entered the dataset at all, letting CLEAN_INSERT/DELETE_ALL skip it and risk a foreign-key violation against data a prior test left behind. FlatXmlProducer now cross-references every table name reported by the available metadata source (the parsed DTD, or an explicitly-supplied metadata IDataSet) against the tables actually encountered in the XML body once parsing finishes, and reports any still missing as an empty table using that source's column metadata. No-op, so behavior is unchanged, when no DTD or metadata dataset is available. Fixes 496. Thanks to zigarn. | jeffjensen |
![]() |
Add DatabaseConfig.FEATURE_SKIP_CYCLE_CHECK, an opt-in escape hatch letting DatabaseSequenceFilter proceed on a schema with a foreign-key dependency cycle instead of unconditionally rejecting it with CyclicTablesDependencyException (issues 501 and 517: dbUnit could not order, and therefore could not CLEAN_INSERT/DELETE_ALL, tables bound together by circular FK references). This is the configurable cycle-breaking escape hatch issue 411 originally proposed rather than a full topological resolution of the cycle itself: DatabaseSequenceFilter.sortTableNames now collapses each cycle into a single strongly-connected-component unit for ordering purposes and logs a warning per cycle instead of throwing, so a table outside the cycle is still correctly ordered relative to it (e.g. a table with its own FK to a cyclic table still sorts after the whole cycle, not merely after whichever cyclic member happened to be placed) and every requested table is still returned exactly once; only the relative order of the tables making up the cycle itself is unresolved and falls back to their original input order, leaving the caller responsible for making the cycle insertable another way (e.g. nullable FK columns populated in a later operation, or database-side deferred constraint checking). Off by default, preserving the existing fail-fast behavior for callers who never touch it. Fixes 501. Thanks to jeffjensen. | jeffjensen |
![]() |
Update maven dependency org.gaul:modernizer-maven-plugin from 2.7.0 to 3.5.0. Fixes 732. Thanks to jeffjensen. | jeffjensen |
![]() |
Add IsActualEqualToExpectedJsonValueComparer, a ValueComparer that parses expected and actual column values as JSON and compares the resulting document trees instead of their raw text: object member order is ignored while array element order stays significant, matching JSON's own equality semantics. Prompted by reviewing a Stack Overflow report of DbUnit failing on a MySQL JSON column; MySQL Connector/J already reports native JSON columns as Types.LONGVARCHAR, which DbUnit's existing StringDataType handles for reads/writes with no DataTypeFactory change needed, but MySQL (like PostgreSQL jsonb and H2 JSON) reformats the text on storage - sorting object keys and stripping insignificant whitespace - so a literal string comparison against an expected dataset value spuriously fails even when the JSON is semantically identical. Not exposed as a ValueComparers constant, since that class eagerly instantiates every constant it declares and would force the optional jackson-databind dependency onto every consumer, not only those comparing JSON columns. Fixes 921. Thanks to jeffjensen. | jeffjensen |
![]() |
Add support for H2 2.x, whose rewritten, SQL-standard-compliant INFORMATION_SCHEMA reports most of its internal tables with the same JDBC TABLE_TYPE ("BASE TABLE") as real user tables instead of the "SYSTEM TABLE" type H2 1.x used, so those 15 tables (CONSTANTS, ENUM_VALUES, INDEXES, INDEX_COLUMNS, INFORMATION_SCHEMA_CATALOG_NAME, IN_DOUBT, LOCKS, QUERY_STATISTICS, RIGHTS, ROLES, SESSIONS, SESSION_STATE, SETTINGS, SYNONYMS, USERS) now pass DatabaseConfig#PROPERTY_TABLE_TYPE's default {"TABLE"} filter and leak into DatabaseDataSet#getTableNames()/createDataSet() whenever a connection queries without a fixed schema (schema is null, e.g. an admin/multi-schema connection with FEATURE_QUALIFIED_TABLE_NAMES). Bump h2DriverVersion from 1.4.200 to 2.4.240 and add H2MetadataHandler (wired into H2Connection) whose getTables() excludes the INFORMATION_SCHEMA schema; it builds the filtered result via a new InMemoryMetadataResultSet#filter(ResultSet, RowFilter) factory, generalized from the merge() factory MultiSchemaMySqlMetadataHandler already used (now a standalone org.dbunit.database class rather than that handler's private nested one). Fixes 923. Thanks to jeffjensen. | jeffjensen |
![]() |
Add the IMetadataHandler Core Components page (components/imetadatahandler.adoc): the interface's method groups, a built-in-implementations table (DefaultMetadataHandler, Db2/MySql/MultiSchemaMySql/Netezza/H2MetadataHandler), and InMemoryMetadataResultSet's two factories (merge() for combining several real result sets, filter() for dropping rows out of one) with guidance on writing a custom handler. Update databases.adoc, databases/h2.adoc, properties.adoc, and components.adoc to reflect H2MetadataHandler and cross-reference the new page; properties.adoc's metadataHandler entry also gains the previously-undocumented MultiSchemaMySqlMetadataHandler. Add a Test Conventions section (codingstandards/testconventions.adoc) on preferring a delegating wrapper over subclassing a concrete vendor handler for test doubles, using DatabaseDataSet_MultiSchemaTest's TestMetadataHandler as the worked example. Fixes 923. Thanks to jeffjensen. | jeffjensen |
![]() |
Add the none element to dataset.dtd's row content model and its own EMPTY declaration: XmlProducer and XmlDataSetWriter have read and written <none/> since the 2003-2004 Electric XML to SAX2 rewrite to represent ITable.NO_VALUE, but the shipped DTD never declared it (it was removed in 2002, before the rewrite reintroduced the element), so validating a document containing <none/> via XmlProducer#setValidating(true) failed with a DataSetException reporting the none element type as undeclared. Fixes 925. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DatabaseDataSet#getTable()/getTableMetaData() throwing NoSuchTableException for every table in a schema the very first time that schema is accessed under a different case than the database itself stored it in, when FEATURE_QUALIFIED_TABLE_NAMES is enabled (issue 656: a multi-schema PostgreSQL FlatXmlDataSet row like "CORE.USER" against a live "core" schema - PostgreSQL folds an unquoted schema name to lower case at creation time). DatabaseDataSet#initialize() passed the requested schema straight into IMetadataHandler#getTables(), whose underlying DatabaseMetaData#getTables() matches the schema pattern case-sensitively against the live catalog regardless of dbUnit's own FEATURE_CASE_SENSITIVE_TABLE_NAMES setting, so a wrongly-cased first request found zero tables - and DatabaseDataSet's own per-schema initialization cache then permanently remembered that schema as already-initialized-but-empty, so even a later, correctly-cased retry kept failing too. This also explains the original report's second observation, that later rows loaded fine once some earlier row happened to use the schema's actual case: that merely primed the cache under a casing OrderedTableNameMap's existing case-insensitive table lookup could then match. DatabaseDataSet now resolves a requested schema name against DatabaseMetaData#getSchemas()'s actual reported names, case-insensitively, before querying for tables, whenever FEATURE_CASE_SENSITIVE_TABLE_NAMES is off (the default); a schema that doesn't exist under any casing still resolves to zero tables exactly as before. Fixes 656. Thanks to jeffjensen. | jeffjensen |
![]() |
Add JsonType, recognized by PostgresqlDataTypeFactory for `json` and `jsonb` columns (reported as sql type OTHER), read/written as their raw text representation via the same reflection-based PGobject approach as UuidType/InetType/CitextType, so a bound parameter's PGobject type name always matches its target column exactly - PostgreSQL has no implicit cast between `json` and `jsonb`. Unlike the reporter's original 2015 patch attachment, setSqlValue() explicitly handles a null value (binding sql NULL) instead of dereferencing it, and typeCast() returns null for a null input. Fixes 574. Thanks to hieunv15. | jeffjensen |
![]() |
Add ArrayType, recognized by PostgresqlDataTypeFactory for every array column (reported as sql type ARRAY, e.g. `integer[]`, `text[]`), read/written as PostgreSQL's own array literal text representation (e.g. `{1,2,3}`); neither DefaultDataTypeFactory nor PostgresqlDataTypeFactory had any java.sql.Types.ARRAY handling before this. On write, the literal is split into its top-level elements - honoring double-quoted, backslash-escaped elements and the unquoted NULL keyword - and bound via the standard Connection#createArrayOf(String, Object[]), so PostgreSQL itself parses and validates each element against the column's actual base type instead of dbUnit typecasting elements itself; only single-dimension arrays are supported for writing, while reading one back for comparison or export works either way since the literal text is never parsed on read. Fixes 646. Thanks to maheshmurali. | jeffjensen |
![]() |
Fix GenericEnumType.typeCast() throwing NullPointerException instead of returning null for a null value (issue 677: AbstractDataType.compare() calls typeCast() directly whenever comparing a null value against a non-null one - reached by any Assertion/DbUnitAssert comparison involving a null-valued native-enum column). Tracing the same defect shape through the rest of org.dbunit.ext.postgresql's reflection-based PGobject types (issue 930) found the identical gap in UuidType, InetType, and CitextType: none of the four null-checked in typeCast(), and their setSqlValue() overrides bypass typeCast() entirely to call a private PGobject-building helper (getEnum()/getUUID()/getInet()/getCitext()) that also dereferences the value unconditionally, so a direct setSqlValue(null, ...) call would separately NPE too. All four now return null from typeCast() for a null input and bind sql NULL from setSqlValue() before ever reaching the PGobject-building helper, matching the pattern JsonType (issue 574) already established. Added PostgresqlNullableOtherTypesIT, round-tripping a null uuid/inet/citext row through CLEAN_INSERT against a live PostgreSQL 16 container; GenericEnumType's fix is proven at the unit level only - writing the live round-trip test surfaced a separate, pre-existing defect (issue 933) that leaves GenericEnumType unreachable for a real table column via CLEAN_INSERT regardless of null handling. Fixes 677. Thanks to arrom. | jeffjensen |
![]() |
Fix PostgreSQLOidDataType#getSqlValue() failing an entire read whenever an `oid` column's value doesn't reference an actual large object (issue 693: a PostgreSQL `oid` column is a generic object identifier, not necessarily a large object reference - e.g. a real catalog object's own oid, such as a table's oid via `'sometable'::regclass`, the original report's own example). PostgreSQL reports this case as SQLState 42704 (`undefined_object`, exposed by the driver as `PSQLState.UNDEFINED_OBJECT`); getSqlValue() now distinguishes it from every other failure and returns null instead, while any other SQLException (a genuine access/permission error, for example) still propagates exactly as before - the method previously had this exact swallow-everything attempt commented out, with a note that doing so unconditionally would hide real errors, which is why a SQLState-based check was needed rather than a blanket catch. PostgreSQL aborts the whole enclosing transaction on any failed command, so the large-object open now runs under a savepoint: on failure, rolling back to it clears the abort without discarding any other work already done in that transaction, keeping the connection usable for the rest of the read (proven by PostgresSQLOidIT reading two distinct non-large-object oids back to back). Added Mockito-based PostgreSQLOidDataTypeTest coverage for the zero-oid, genuine-large-object, not-a-large-object, and other-SQLException-still-propagates cases. Fixes 693. Thanks to coiouhkc. | jeffjensen |
Release 3.4.0 – Jul 28, 2026
| Type | Changes | By |
|---|---|---|
![]() |
Implement the 8 empty, @Disabled DefaultPrepAndExpectedTestCaseTest stub methods covering preTest, postTest, setupData, verifyData, cleanupData, and makeCompositeDataSet, using the class's existing Mockito-based connection harness. Move the test fixture's databaseTester/tc construction from field initializers to a @BeforeEach method so @Mock injection (MockitoExtension) completes before they are built. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Convert 8 empty, @Disabled ForwardOnlyDataSetTest methods into assertThrows assertions proving ForwardOnlyDataSet's documented unsupported-operation contract, matching the pattern already used by the class's other overrides. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Implement ExcludeTableFilterTest's 2 empty, @Disabled reverse-order tests, ported from the equivalent IncludeTableFilterTest methods. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Move ToStringViewTest's testStreamingTable/testXlsTable out of their dead @Disabled state into new StreamingTableToStringTest and XlsTableToStringTest classes in the same package as StreamingTable/XlsTable, since both are only visible there. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Restore 8 commented-out unit test methods across CsvParserTest, FlatXmlTableTest, and BiDirectionalEdgesDepthFirstSearchTest, migrating them to Jupiter/AssertJ. FlatXmlTableTest's unknown-column case now asserts the current, intentional NoSuchColumnException instead of the stale null-return expectation it originally encoded. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Implement ReplacementTableTest.testGetMissingValue, which previously asserted nothing, mirroring the MISSING_VALUES fixture pattern already used by the sibling FlatXmlTableTest/XlsTableTest overrides of the same inherited test. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Add real assertions to DefaultPrepAndExpectedTestCaseTest.testApplyColumnFiltersBothNull/BothNotNull, which previously discarded applyColumnFilters()'s result and asserted nothing, and document via the not-null case that include filtering is applied before exclude filtering. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Add DatabaseTestCase.tearDown(Throwable), for use when a test failure is already in flight, that attaches a tear-down operation failure to the original failure via addSuppressed instead of letting it replace and hide the original. The existing no-arg tearDown() is unchanged. Fixes 141. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DefaultPrepAndExpectedTestCase.runTest() losing the original test failure when the cleanup path (postTest(false)) also throws: attach the cleanup failure to the original via addSuppressed instead of letting it replace and hide the real test failure, mirroring DatabaseTestCase.tearDown(Throwable). Fixes 141. Thanks to jeffjensen. | jeffjensen |
![]() |
Rewrite DbUnitTaskIT's obsolete queryset id/refid test: it asserted the old behavior of throwing a BuildException when both attributes are set, but Ant resolves refid first and no longer errors on the combination; the test now asserts today's actual, no-throw behavior. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Delete two commented-out test fragments that encoded no restorable behavior: InsertOperationIT's testExecuteNullAsNone referenced DatabaseConfig.FEATURE_NULL_AS_NONE, which does not exist anywhere in production code (an apparently never-implemented feature; the NO_VALUE-omission behavior it targeted is already covered by testExecute_withNoValueFields_omitsNoValueColumnsFromInsertSql in InsertOperationTest), and DatabaseDataSetIT's testGetTableNamesAndCaseSensitive was two lines cut off mid-statement with no coherent assertion, probing raw DatabaseMetaData introspection that dbunit's own case-sensitivity handling (FEATURE_CASE_SENSITIVE_TABLE_NAMES) does not use. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Rename the stale JUnit3-era xtest*-prefixed methods in PostgresSQLOidIT, PostgresqlUuidIT, and SQLHelperDomainPostgreSQLIT to test*, and remove the try/catch wrapper around each body that reported a nonsense fixed message instead of the real failure whenever a non-assertion exception occurred (AssertionError is not an Exception, so real assertion failures already propagated normally; only the underlying operation's own failures were obscured). Verified against a Dockerized postgres:16.3. Fixes 797. Thanks to jeffjensen. | jeffjensen |
![]() |
Add CachingConnectionProvider: an opt-in, thread-safe cache for one IDatabaseConnection (and therefore its metadata cache) that detects a dead or expired connection and transparently replaces it instead of returning it or failing. Wire it into JdbcDatabaseTester, DataSourceDatabaseTester, JndiDatabaseTester, PropertiesBasedJdbcDatabaseTester, and DefaultDatabaseTester via new, additive constructor overloads, making the existing manual DefaultDatabaseTester + NO_OP_OPERATION_LISTENER reuse pattern safe to opt into without hand-wiring a static connection field. Update the FAQ's performance and keep-connection-open entries accordingly. Verified against hsqldb, h2, derby, and postgresql. Fixes 799. Thanks to jeffjensen. | jeffjensen |
![]() |
Reduce DefaultPrepAndExpectedTestCase's per-test connection churn: setupData(), verifyData(), and cleanupData() now share one IDatabaseConnection acquired lazily and closed once by cleanupData(), instead of each step acquiring and often closing its own; configureTest() caches its resolved FEATURE_CASE_SENSITIVE_TABLE_NAMES value so cleanupData() no longer needs a second connection just to re-read it. Together these cut a 4-5-connection-per-test lifecycle down to 1-2. Verified against all 9 supported databases (hsqldb, h2, derby, postgresql, mysql, mssql, db2, oracle-18, oracle-23). Fixes 800. Thanks to jeffjensen. | jeffjensen |
![]() |
Add DefaultPrepAndExpectedTestCase.setCloseConnectionAfterTest(boolean), defaulting to true, so a databaseTester sharing a CachingConnectionProvider across test methods can opt this class out of closing a connection other tests still expect to reuse. Fixes 800. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix DefaultPrepAndExpectedTestCase.makeExpectedTableColumns() column-name matching to use Locale.ENGLISH instead of the JVM default locale, so a Turkish default locale's dotless-i no longer breaks matching differently-cased ASCII column names, matching DatabaseDataSet.SchemaSet.normalizeSchema's existing convention. Fixes 206. Thanks to jeffjensen. | jeffjensen |
![]() |
Harmonize DefaultPrepAndExpectedTestCase.getSetUpOperation()/getTearDownOperation() on throwing IllegalStateException for a null databaseTester, matching setupData()/verifyData()/cleanupData(), instead of JUnit's assertNotNull()/AssertionError; remove the now-unused assertNotNull import. Fixes 802. Thanks to jeffjensen. | jeffjensen |
![]() |
Code-quality cleanups in DefaultPrepAndExpectedTestCase: use generics in makeCompositeDataSet() instead of a raw List and unchecked array cast, move applyColumnFilters()'s null check ahead of first use, log include/exclude column filters with Arrays.toString() instead of a confusing single-element Object[] wrapper, and document the legacy JUnit-3-era tearDown() hook's non-invocation under JUnit 5 and its double-cleanup risk. Fixes 802. Thanks to jeffjensen. | jeffjensen |
![]() |
Pin remaining identifier case folding to Locale.ENGLISH so Turkish-family default locales no longer break table/column matching, filtering, and extended-syntax command parsing. Fixes 452. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix NullPointerException exporting datasets containing NO_VALUE cells to flat XML, and stop YAML export dumping the raw NO_VALUE sentinel. Fixes 803. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix SQLHelper.logInfoIfValueChanged's isInfoEnabled() guard not matching its logger.debug() call, which silently dropped the schema-correction notice whenever INFO was enabled but DEBUG was not; the guard now checks isDebugEnabled() to match, keeping the notice at its original DEBUG level. Fixes 804. Thanks to jeffjensen. | jeffjensen |
![]() |
Close file/URL input streams in BytesDataType (handle leak; Windows file locking) and read them in chunks instead of per byte. Fixes 805. Thanks to jeffjensen. | jeffjensen |
![]() |
BytesDataType now throws TypeCastException for an invalid [text] encoding id or corrupt [base64] input instead of storing error text or NULL, and the plain-text fallback consistently uses UTF-8. Behavior change: datasets that previously "worked" by silently inserting garbage/NULL now fail fast, and fallback text bytes change on platforms whose default charset is not UTF-8. Fixes 806. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix QualifiedTableName escaping treating a single-character segment immediately before a dot as part of the following segment instead of splitting them. Fixes 807. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix the Ant export step rejecting format="CSV" in uppercase and leaving an empty output file behind for unsupported formats. Also, an unsupported format is now rejected before the database connection is queried for the export dataset, instead of after, since format validity doesn't depend on the connection. Fixes 808. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix Export.setFormat()'s IllegalArgumentException message omitting 'csv' from the list of valid formats, even though csv has always been accepted. Fixes 808. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase.postTest now attaches a verify failure as suppressed on the cleanup exception that deliberately shadows it, instead of losing it. Fixes 809. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix InsertOperation reusing a statement across rows whose null-with-column-default shape differs, which bound NULL into NOT NULL DEFAULT columns depending on row order. Fixes 810. Thanks to jeffjensen. | jeffjensen |
![]() |
XML export now round-trips supplementary characters (previously written as invalid surrogate entities) and replaces XML-unrepresentable control characters with U+FFFD plus a warning (previously written raw, producing unparseable files). Fixes 811. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix TimestampDataType timezone application mis-encoding pre-epoch fractional-second timestamps and throwing on negative encoded times. Fixes 812. Thanks to jeffjensen. | jeffjensen |
![]() |
TransactionOperation now rolls back when an Error propagates instead of implicitly committing partial work via auto-commit restoration. Also, in all four rollback catch blocks (DatabaseUnitException, SQLException, RuntimeException, and Error), a rollback failure is now attached to the original exception as suppressed instead of replacing it, via a shared handleException() helper. Fixes 813. Thanks to jeffjensen. | jeffjensen |
![]() |
XlsTable now reports 0 rows for an empty sheet instead of -1 and returns nulls for physically-missing rows instead of throwing NullPointerException. Fixes 814. Thanks to jeffjensen. | jeffjensen |
![]() |
YAML and flat-DTD exports, and OracleXMLTypeDataType's internal byte/String conversions, are now UTF-8 explicitly instead of the platform default charset, matching what their readers decode; previously non-ASCII exports were unreadable on platforms with a non-UTF-8 default charset. Fixes 815. Thanks to jeffjensen. | jeffjensen |
![]() |
Skip a redundant per-table getTables metadata query in DatabaseDataSet.getTableMetaData; existence is already proven by the dataset's table enumeration. Fixes 816. Thanks to jeffjensen. | jeffjensen |
![]() |
Guard or remove per-cell debug logging in the datatype package to eliminate autoboxing overhead on hot read/write paths. Fixes 820. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix a data race that could mask the real producer failure behind a generic interruption error in StreamingIterator. Fixes 821. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix CsvParser duplicating the continuation line in its buffer when a multi-line field completes with too few columns, garbling the error report or fabricating data. Fixes 822. Thanks to jeffjensen. | jeffjensen |
![]() |
Use DatabaseConfig.getFeature for the qualified-table-names check in DatabaseDataSet instead of a Boolean reference comparison. Fixes 823. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix FileHelper.copyFile leaking the source stream when the destination cannot be opened. Fixes 824. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase.configureTest now keeps its lazily-acquired connection open for the test lifecycle instead of closing it for setupData to immediately reacquire, completing the one-connection-per-test reduction; like setupData/verifyData, a standalone configureTest call leaves the connection open until cleanupData. Fixes 825. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove the dead, never-assigned PreparedStatement field from RefreshOperation's UpdateRowOperation, and close both row operations in execute's cleanup even if the first close fails. Fixes 826. Thanks to jeffjensen. | jeffjensen |
![]() |
Route Base64's bad-input console diagnostic through its slf4j logger at WARN instead of System.err.println, and remove four e.printStackTrace() calls that duplicated an adjacent logger.error() call to stderr. Fixes 827. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove XmlWriter's dead private setEncoding(String) overload, unreachable from setWriter and never matching the common "UTF-8" spelling even if it were called. Fixes 828. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix CsvProducer truncating a table name at the first ".csv" occurrence instead of the last, which misread a table named e.g. a.csvx back as a on round-trip; also null-safe the NULL-token comparison. Fixes 829. Thanks to jeffjensen. | jeffjensen |
![]() |
Remove the unused, stale slf4jVersion and snakeYamlVersion pom properties, superseded by the actually-used slf4jApiVersion and snakeyamlVersion. Fixes 830. Thanks to jeffjensen. | jeffjensen |
![]() |
Reindent SQLHelper.logDebugIfValueChanged's closing braces to match their actual nesting depth; cosmetic only, brace count was already balanced. Fixes 832. Thanks to jeffjensen. | jeffjensen |
![]() |
Centralize the duplicated Turkish-locale save/mutate/restore boilerplate across 13 test classes into a shared @TurkishDefaultLocale JUnit 5 extension. Fixes 833. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix TimestampDataType writing the wrong instant to TIMESTAMP WITH TIME ZONE columns: the issue #711 fix's Calendar-based setTimestamp(Timestamp, Calendar) call let some JDBC drivers tag the stored value with the JVM's default time zone instead of the dataset's own time zone, silently discarding it. Detect such columns via PreparedStatement.getParameterMetaData() and write them with setObject(OffsetDateTime) instead, which drivers supporting the SQL type map unambiguously; columns without a time zone keep the existing Calendar-based behavior from #711 unchanged. Fixes 831. Thanks to yoshida16729438. | jeffjensen |
![]() |
Replace InsertOperationIT's inline getDatabaseProductName()-based assumeTrue check, gating a test to HSQLDB only since DEFAULT_VALUE_TABLE is defined solely in its fixture DDL, with a method-level @EnabledIfSystemProperty(named = "dbunit.profile", matches = "hsqldb") annotation, matching existing class-level precedent elsewhere in the test suite. Fixes 835. Thanks to jeffjensen. | jeffjensen |
![]() |
Add a discussion-announcement job to release.yml that posts a GitHub Discussion announcement (Announcements category) after each release, generated from src/changes/changes.xml via maven-changes-plugin's announcement-generate goal and a new .github/scripts/format-announcement.py formatting step; pinning the new post and unpinning the prior one stays a manual step since GitHub's API has no mutation for it. Fixes 837. Thanks to jeffjensen. | jeffjensen |
Release 3.3.0 – Jul 22, 2026
| Type | Changes | By |
|---|---|---|
![]() |
Update github_actions dependency actions/checkout from 6 to 7 (#756). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.apache.maven.plugins:maven-failsafe-plugin from 3.5.5 to 3.5.6 (#748). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (#748). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.apache.maven.plugins:maven-surefire-report-plugin from 3.5.5 to 3.5.6 (#748). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency com.oracle.database.xml:xdb from 23.7.0.25.01 to 23.26.2.0.0 (#749). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency com.oracle.database.xml:xmlparserv2 from 23.7.0.25.01 to 23.26.2.0.0 (#750). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.sonatype.central:central-publishing-maven-plugin from 0.10.0 to 0.11.0 (#757). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency com.github.siom79.japicmp:japicmp-maven-plugin from 0.26.0 to 0.26.1 (#758). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency ch.qos.logback:logback-classic from 1.5.32 to 1.5.34 (#759). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.junit.jupiter:junit-jupiter from 6.1.0 to 6.1.1 (#761). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.junit.platform:junit-platform-suite-engine from 6.1.0 to 6.1.1 (#761). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency ch.qos.logback:logback-classic from 1.5.34 to 1.5.37 (#762). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency org.jacoco:jacoco-maven-plugin from 0.8.14 to 0.8.15 (#763). Thanks to Dependabot. | dependabot |
![]() |
Update maven dependency com.ibm.db2:jcc from 12.1.0.0 to 12.1.5.0 (#764). Thanks to Dependabot. | dependabot |
![]() |
Speed up per-cell column index lookups with an exact-case fast path in AbstractTableMetaData. Fixes 769. Thanks to jeffjensen. | jeffjensen |
![]() |
Stop capturing stack traces in RowOutOfBoundsException end-of-rows control flow; the exception no longer carries a stack trace. Fixes 770. Thanks to jeffjensen. | jeffjensen |
![]() |
Buffer XML output in XmlWriter; callers must close or flush the writer to guarantee complete output. Fixes 771. Thanks to jeffjensen. | jeffjensen |
![]() |
Buffer CSV file output in CsvDataSetWriter. Fixes 772. Thanks to jeffjensen. | jeffjensen |
![]() |
Buffer DTD and YAML dataset output. Fixes 773. Thanks to jeffjensen. | jeffjensen |
![]() |
Cache DecimalFormat instances per format string in XlsTable numeric cell reads. Fixes 774. Thanks to jeffjensen. | jeffjensen |
![]() |
Restore execution of DepthFirstSearch tests that silently stopped running under JUnit Jupiter. Fixes 766. Thanks to jeffjensen. | jeffjensen |
![]() |
Enforce the search depth limit in DepthFirstSearch; direct-dependency lookups no longer include transitive tables. Fixes 766. Thanks to jeffjensen. | jeffjensen |
![]() |
Cache dependency edges during DatabaseSequenceFilter sorting, eliminating repeated JDBC metadata queries. Fixes 491. Thanks to jeffjensen. | jeffjensen |
![]() |
Replace quadratic table ordering in DatabaseSequenceFilter with a topological sort; ambiguous orders may differ but remain valid. Fixes 491. Thanks to jeffjensen. | jeffjensen |
![]() |
Fetch result set column metadata once per table instead of once per column (DefaultMetadataHandler only). Fixes 617. Thanks to jeffjensen. | jeffjensen |
![]() |
Precompute sort keys in SortedTable instead of re-converting values on every comparison. Fixes 775. Thanks to jeffjensen. | jeffjensen |
![]() |
Reduce per-cell overhead in the assertion comparison loop (hoisted row count, guarded debug logging). Fixes 776. Thanks to jeffjensen. | jeffjensen |
![]() |
Reduce replacement scanning overhead in ReplacementTable. Fixes 777. Thanks to jeffjensen. | jeffjensen |
![]() |
Flatten same-name table merging in CompositeDataSet from nested pairs to a single composite. Fixes 778. Thanks to jeffjensen. | jeffjensen |
![]() |
Detect columns without exception-based control flow in FlatXmlProducer. Fixes 779. Thanks to jeffjensen. | jeffjensen |
![]() |
Close result sets per iteration in PrimaryKeyFilter scans instead of leaking them. Fixes 767. Thanks to jeffjensen. | jeffjensen |
![]() |
Release workbook cell style cache entries after XLS write, fixing a memory leak. Fixes 768. Thanks to jeffjensen. | jeffjensen |
![]() |
Skip the timezone-suffix regex match in TimestampDataType.typeCast for strings that cannot possibly contain a timezone suffix. Fixes 780. Thanks to jeffjensen. | jeffjensen |
![]() |
Guard hot-path debug logging in PreparedBatchStatement, SimplePreparedStatement, AutomaticPreparedBatchStatement, and InsertOperation. Fixes 278. Thanks to jeffjensen. | jeffjensen |
![]() |
Close the result set in SQLHelper.getPrimaryKeyColumn and raise a clear SQLException when the table has no primary key. Fixes 767. Thanks to jeffjensen. | jeffjensen |
![]() |
Reuse the cached table in QueryTableIterator.getTableMetaData instead of separately querying the database, also fixing a result set leak in the previous implementation. Fixes 781. Thanks to jeffjensen. | jeffjensen |
![]() |
Close the internal file stream in the XlsDataSet(File) constructor instead of leaking it; buffer it while open. Fixes 788. Thanks to jeffjensen. | jeffjensen |
![]() |
Release each CSV row read by CsvProducer as soon as it is handed to the dataset consumer, instead of retaining the full parsed file in memory alongside the CachedDataSet being built from it. Fixes 783. Thanks to jeffjensen. | jeffjensen |
![]() |
Replace the linear scan in OrderedTableNameMap.getOriginalTableName with a lookup map populated at add() time. Fixes 784. Thanks to jeffjensen. | jeffjensen |
![]() |
Store RowFilterTable's filtered row index mapping as a primitive int array instead of boxed Integer objects. Fixes 785. Thanks to jeffjensen. | jeffjensen |
![]() |
Replace the O(n*m^2) nested scan and List.remove(Object) in Columns.mergeColumnsByName with set-based membership. Fixes 786. Thanks to jeffjensen. | jeffjensen |
![]() |
Extend ResultSetTableMetaData's per-table column-metadata cache to MySqlMetadataHandler and Db2MetadataHandler via a new IMetadataHandler.matchesColumn()/supportsColumnCache() capability, instead of only DefaultMetadataHandler. Fixes 792. Thanks to jeffjensen. | jeffjensen |
![]() |
Build the zero-padding format string in XlsDataSetWriter from the actual BigDecimal scale instead of substring-ing a fixed 52-character constant, which threw StringIndexOutOfBoundsException for scale greater than 52. Cap the padding length to avoid unbounded growth for a pathological scale, and deprecate the now-unused ZEROS constant. Fixes 790. Thanks to jeffjensen. | jeffjensen |
![]() |
Restore execution of 45 test methods across 22 classes that silently never ran under JUnit Jupiter: JUnit3-era overrides of inherited/abstract test methods and @Disabled-only methods missing the required @Test annotation. Fixes 794. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix corrupted expected-value string in HandlersTest.testEmptyQuotedAndUnquotedFieldsParser, exposed once the test began executing. Fixes 794. Thanks to jeffjensen. | jeffjensen |
Release 3.2.0 – Jun 4, 2026
| Type | Changes | By |
|---|---|---|
![]() |
Update github_actions dependency actions/deploy-pages from 4 to 5 (#27). Thanks to Dependabot. | dependabot |
![]() |
Update github_actions dependency actions/setup-java from 4 to 5 (#27). Thanks to Dependabot. | dependabot |
![]() |
Update github_actions dependency actions/upload-pages-artifact from 3 to 5 (#27). Thanks to Dependabot. | dependabot |
![]() |
Update github_actions dependency dependabot/fetch-metadata from 2 to 3 (#27). Thanks to Dependabot. | dependabot |
![]() |
Extract mock-based tests, runnable without a database, from IT classes into standalone unit test classes. Fixes 727. Thanks to jeffjensen. | jeffjensen |
![]() |
Rename test methods across all test classes to follow the test_condition_outcome naming convention. Fixes 728. Thanks to jeffjensen. | jeffjensen |
![]() |
Add DataSetBuilder for easing in-memory data set creation. Fixes 551, 733. Thanks to jeffjensen. | jeffjensen |
![]() |
Improve test infrastructure by adding InMemoryDatabaseConnection and MockBatchStatement, and updating MockStatementFactory. Fixes 729. Thanks to jeffjensen. | jeffjensen |
![]() |
Add many unit tests to improve unit test coverage. Fixes 730. Thanks to jeffjensen. | jeffjensen |
![]() |
Bump HSQLDB from 1.8.0.10 to 2.7.4 and update DDL and driver references for JDBC 4.0 compliance. Fixes 731. Thanks to jeffjensen. | jeffjensen |
![]() |
Add many integration tests to improve integration test coverage. Fixes 731. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix table lookup failure with case-sensitive databases when creating DatabaseTableMetaData. Fixes 705, 734. Thanks to jeffjensen. | jeffjensen |
![]() |
Escape SQL LIKE wildcard characters in table name metadata lookups and normalize table names to stored case in FK dependency searches. Fixes 737. Thanks to jeffjensen. | jeffjensen |
![]() |
Use database profile connection in FK-graph and pattern tests instead of hardcoded HSQLDB connections. Fixes 736. Thanks to jeffjensen. | jeffjensen |
![]() |
Skip case-sensitive table name tests on databases that do not support mixed-case quoted identifiers. Fixes 736. Thanks to jeffjensen. | jeffjensen |
![]() |
Add Mockito unit test and live Oracle integration test for OracleSdoGeometryDataType.getSqlValue, verifying null geometry returns the "NULL" sentinel and non-null geometry returns a parseable string. Fixes 738. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix ScrollableResultSetTable IDatabaseConnection-based constructors that always obtained a TYPE_FORWARD_ONLY statement, making scrollable result set support permanently broken. Rename ScrollableResultSetTableTest to ScrollableResultSetTableIT, add H2-based tests that prove the break and verify the fix, and remove SCROLLABLE_RESULTSET from the Oracle and H2 unsupported-feature lists. Fixes 739. Thanks to jeffjensen. | jeffjensen |
![]() |
Document all valid dbunit.profile.unsupportedFeatures values with descriptions and per-database support matrix; fix stale H2 example that incorrectly listed SCROLLABLE_RESULTSET as unsupported. Fixes 743. Thanks to jeffjensen. | jeffjensen |
![]() |
Correct unsupportedFeatures in derby-dbunit.properties (remove TRANSACTION, SCROLLABLE_RESULTSET, TRUNCATE_TABLE), h2-dbunit.properties (remove TRUNCATE_TABLE), and hsqldb-dbunit.properties (remove TRUNCATE_TABLE); update site doc table and H2 example accordingly. Fixes 744. Thanks to jeffjensen. | jeffjensen |
![]() |
Configure DB2 in build infrastructure: migrate to icr.io/db2_community/db2:11.5.9.0 (ibmcom/db2 is deprecated); add db2-11-5 to database-profiles.txt and GitHub Actions CI matrix (30-minute timeout); configure Docker container with DB2INSTANCE env var, privileged mode (required for kernel IPC resources), AUTOCONFIG=false/UPDATEAVAIL=NO (shorter startup), tmpfs on /database (eliminates transaction log fsync overhead), and db2-tune.sh to increase LOGBUFSZ and disable SOFTMAX; set db2-dbunit.properties schema=DBUNIT (DB2 stores identifiers as uppercase), unsupportedFeatures, and multiLineSupport; add Db2Environment setting Db2DataTypeFactory, Db2MetadataHandler, and enabling batch statements; add NOT NULL to PK columns in shared test DDL files (DB2 requires explicit NOT NULL on PK columns); update site doc. Fixes 635. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix NullPointerException in SQLHelper.schemaExists() and catalogExists() when the JDBC driver returns null TABLE_SCHEM or TABLE_CAT values, as DB2 does. Fixes 745. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix TruncateTableOperation for DB2: add protected getDeleteAllCommandSuffix hook to DeleteAllOperation and override it in TruncateTableOperation to append IMMEDIATE, which DB2 requires in every TRUNCATE TABLE statement. Fixes 746. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix TimestampDataType.setSqlValue() to pass a Calendar matching the dataset timezone offset when setting a timestamp with timezone info, preventing the JDBC driver from applying the JVM local timezone and storing the wrong wall-clock time. Fixes 711. Thanks to jeffjensen. | jeffjensen |
![]() |
Correct pom.xml dependency declarations that were forcing an unneeded transitive dependency onto every consumer or silently failing to be optional: junit-platform-suite-engine's only consumer, org.dbunit.ant.AllTests, turned out to be the same kind of orphaned JUnit 3/4-era @Suite aggregator already removed elsewhere (never executed by Surefire/Failsafe's filename-pattern discovery, and its own @SelectClasses was entirely commented out), so both the dead class and the now-unused dependency (dependencyManagement and dependencies) are removed outright rather than merely rescoped; snakeyaml (YamlDataSet) is now optional, matching how jackson-databind (JsonDataSet) is already handled; h2 and hsqldb now explicitly declare test scope with a corrected comment, since neither ext.h2 nor ext.hsqldb references its driver at compile time; postgresql and the Oracle JDBC driver now explicitly declare optional=true locally, since dependencyManagement's optional flag is not inherited by a matching dependency declaration. Add short comments explaining why the dependencies that must remain optional/provided are declared that way, and remove the two resolved TODOs from the dependencies section. | jeffjensen |
Release 3.1.0 – May 11, 2026
| Type | Changes | By |
|---|---|---|
![]() |
Configure GitHub CI. Fixes 717. Thanks to jeffjensen. | jeffjensen |
![]() |
Update build to use docker-maven-plugin for starting databases. Fixes 716. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase: lower log levels so no WARN and fewer INFO. Fixes 718. Thanks to jeffjensen. | jeffjensen |
![]() |
Setup reproducible builds. Fixes 720. Thanks to jeffjensen. | jeffjensen |
![]() |
Change Central artifact publishing from OSSRH to new Portal. Fixes 721. Thanks to jeffjensen. | jeffjensen |
![]() |
Add IsActualGreaterThanExpectedWithIgnoreMillisValueComparer. Thanks to jeffjensen. | jeffjensen |
![]() |
Add IsActualGreaterThanOrEqualToExpectedWithIgnoreMillisValueComparer. Thanks to jeffjensen. | jeffjensen |
![]() |
Convert APT and XDoc doc files to Asciidoc. Fixes 723. Thanks to jeffjensen. | jeffjensen |
![]() |
Generate and publish Maven site to GitHub pages. Fixes 724. Thanks to jeffjensen. | jeffjensen |
![]() |
Bump multiple plugin and lib versions. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase: extract runTestSteps() from runTest() enabling customization in child classes. Fixes 725. Thanks to jeffjensen. | jeffjensen |
![]() |
Auto-publish SNAPSHOTs to Maven Central on master commits. Thanks to jeffjensen. | jeffjensen |
Release 3.0.0 – Jan 25, 2025
| Type | Changes | By |
|---|---|---|
![]() |
Upgrade dbUnit from JUnit 4 to JUnit 5. Fixes 659. Thanks to emann. | jeffjensen |
![]() |
Add 'actual is null' and 'actual is not null' constants to ValueComparers class. Fixes 699. Thanks to jeffjensen. | jeffjensen |
![]() |
Add TableDecoratorDataSet and GeneratedColumnFilterSupport enabling column filtering from datasets, such as computed columns. Fixes 675. Thanks to rdicroce. | jeffjensen |
![]() |
Mark postgresql dependency as provided scope. Fixes 701. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix NoClassDefFoundError for IOUtils. Fixes 703. Thanks to jeffjensen. | jeffjensen |
![]() |
Update code for Modernizer plugin violations. Fixes 690. Thanks to andrewhj. | andrewhj |
![]() |
In PostgreSQLOidDataType.setSqlValue(), use connection.unwrap() to get PGConnection. Fixes 714. Thanks to wbiller. | jeffjensen |
![]() |
In OracleNClobDataType.setSqlValue() and OracleXMLTypeDataType.setSqlValue(), use connection.unwrap() to get statement or resultset. Fixes 702. Thanks to wbiller. | jeffjensen |
![]() |
Configure Maven Wrapper for dbUnit builds. Fixes 715. Thanks to jeffjensen. | jeffjensen |
Release 2.8.0 – Jun 2, 2024
| Type | Changes | By |
|---|---|---|
![]() |
Add support for YAML dataset format. Fixes 688. Thanks to beskow. | beskow |
Release 2.7.3 – Feb 12, 2022
| Type | Changes | By |
|---|---|---|
![]() |
Enable composing an Operation dataset from multiple source files. Fixes 44. Thanks to beskow. | jeffjensen |
![]() |
OracleClobDataType: Use non-deprecated CLOB; also prevents ClassCastException. Fixes 684. Thanks to Bambaro. | jeffjensen |
![]() |
Nullable UUID column in PostgreSQL caused NPE. Fixes 695. Thanks to xobotun. | jeffjensen |
![]() |
Timestamp conversion for instants during daylight saving time is off. Fixes 694. Thanks to JamMule. | jeffjensen |
![]() |
Unwrap PGConnection instead of casting to it. Fixes 692. Thanks to fransonsr. | jeffjensen |
![]() |
Add 'actual is null' and 'actual is not null' ValueComparers. Fixes 699. Thanks to jeffjensen. | jeffjensen |
![]() |
Upgrade PostGIS JDBC driver to 2021.1.0. Fixes 700. Thanks to mprins. | jeffjensen |
Release 2.7.2 – Jul 27, 2021
| Type | Changes | By |
|---|---|---|
![]() |
DefaultPrepAndExpectedTestCase must use correct getConnection() to initialize DatabaseConfig. Fixes 697. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase must use DatabaseConfig.FEATURE_CASE_SENSITIVE_TABLE_NAMES: in cleanupData(). Fixes 698. Thanks to jeffjensen. | jeffjensen |
Release 2.7.1 – Jul 22, 2021
| Type | Changes | By |
|---|---|---|
![]() |
Update Apache POI to version 4.1.0. Fixes 671. Thanks to dicer. | jeffjensen |
![]() |
Eliminate the Maven's relativePath warning. Fixes 679. Thanks to vicziani. | jeffjensen |
![]() |
UniqueIdentifierType: change caught exception for Java 12's changed UUID validation. Fixes 680. Thanks to vicziani. | jeffjensen |
![]() |
Use optional in poi-ooxml and postgresql Maven dependencies. Fixes 681. Thanks to vicziani. | jeffjensen |
![]() |
Use optional in junit and hamcrest Maven dependencies. Fixes 682. Thanks to vicziani. | jeffjensen |
![]() |
Remove commons-io dependency. Fixes 683. Thanks to vicziani. | jeffjensen |
![]() |
Remove commons-collections dependency. Fixes 684. Thanks to vicziani. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase must use DatabaseConfig.FEATURE_CASE_SENSITIVE_TABLE_NAMES: in configureTest(). Fixes 696. Thanks to jeffjensen. | jeffjensen |
Release 2.7.0 – Feb 23, 2020
| Type | Changes | By |
|---|---|---|
![]() |
NPE in DefaultPrepAndExpectedTestCase.makeAdditionalColumnInfo when excludeColumns is null. Fixes 652. Thanks to jeffjensen. | jeffjensen |
![]() |
Update PostgreSQL driver version. Fixes 654. Thanks to aklemp. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase.verifyData() sorts table columns by Strings. Fixes 658. Thanks to jeffjensen. | jeffjensen |
![]() |
Add new syntax to set relative date, time, and timestamp in dataset. Fixes 661. Thanks to kforkiss. | jeffjensen |
![]() |
Setup public CI. Fixes 664. Thanks to Quantas. | Quantas |
![]() |
IllegalArgumentException when setting PROPERTY_IDENTITY_COLUMN_FILTER. Fixes 503. Thanks to lufecir. | jeffjensen |
![]() |
CachedDataSet does not work. Fixes 660. Thanks to deragon. | deragon |
![]() |
Add IsActualContainingExpectedStringValueComparer comparing if actual contains expected. Fixes 669. Thanks to jeffjensen. | jeffjensen |
![]() |
FilteredDataSet does not inherit case sensitivity of wrapped set. Fixes 665. Thanks to lcann. | jeffjensen |
![]() |
DatabaseDataSet SchemaSet ignores case sensitivity setting in normalizing schema names. Fixes 666. Thanks to lcann. | jeffjensen |
![]() |
IsActualWithinToleranceOfExpectedTimestampValueComparer assumes values are represented as Timestamps. Fixes 667. Thanks to lcann. | jeffjensen |
![]() |
Add support for MSSQL's datetimeoffset data type. Fixes 668. Thanks to rdicroce. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase.runTest(): catch Throwable instead of Exception. Fixes 687. Thanks to jeffjensen. | jeffjensen |
![]() |
Update Oracle Dependency to ojdbc8 from Maven Central. Fixes 689. Thanks to Quantas. | Quantas |
![]() |
Fix null values being inserted when a column is referenced with different casing. Fixes 673. Thanks to lorentz-bind. | jeffjensen |
Release 2.6.0 – Oct 13, 2018
| Type | Changes | By |
|---|---|---|
![]() |
DefaultPrepAndExpectedTestCase, VerifyTableDefinition: support ValueComparer. Fixes 627. Thanks to jeffjensen. | jeffjensen |
![]() |
ValueComparer: DbUnitAssert: add assert method that strategizes the compare algorithm on a per column basis. Fixes 627. Thanks to jeffjensen. | jeffjensen |
![]() |
Add Dockerfiles for running ITs: MySQL, Oracle 11, Postgres and SQL Server. Fixes 649. Thanks to Quantas. | Quantas |
![]() |
Fix JavaDoc gen. Fixes 609. Thanks to jeffjensen. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase: VerifyTableDefinitions and expected tables can silently mismatch, add ExpectedDataSetAndVerifyTableDefinitionVerifier. Fixes 626. Thanks to jeffjensen. | jeffjensen |
![]() |
Change build to use Java 8 compiler and target 1.8: update compileSource to 1.8. Fixes 648. Thanks to jeffjensen. | jeffjensen |
![]() |
DatabaseEnvironment loads dbunit.properties. See "Integration Tests" page for docs. Fixes 643. Thanks to deragon. | jeffjensen |
![]() |
Convert devguide.xml to devguide.apt. Fixes 641. Thanks to deragon. | jeffjensen |
![]() |
Fixed documentation regarding the blob tags. Fixes 630. Thanks to deragon. | Quantas |
![]() |
Fix changes report tracker links (Bugs, Features) to support both. Fixes 557. Thanks to jeffjensen. | jeffjensen |
![]() |
Fix all (except one Oracle test) database integration tests to work again. Fixes 407, 409, 410, 411. Thanks to Quantas. | Quantas |
![]() |
Update tests to support build running Java 8. Fixes 601. Thanks to jkearns-arthrex. | jeffjensen |
![]() |
CachedDataSet has redundant code. Fixes 619. Thanks to deragon. | jeffjensen |
![]() |
FlatDtdDataSet has redundant code. Fixes 618. Thanks to deragon. | jeffjensen |
![]() |
Use Apache POI 3.17. Fixes 623. Thanks to msymons. | jeffjensen |
![]() |
Add PostgreSQL OID data type. Fixes 550. Thanks to mfrechePgest, ibic. | jeffjensen |
Release 2.5.4 – Aug 20, 2017
| Type | Changes | By |
|---|---|---|
![]() |
DefaultPrepAndExpectedTestCase: Don't verify table data when test execution has errors. Thanks to jeffjensen. | jeffjensen |
![]() |
Cannot insert null values via jTDS (regression from 374). Fixes 616. Thanks to sidikcz. | jeffjensen |
![]() |
Blobs are now easier to define in flat XML dataset and CSV files using [text <encoding>], [base64] and [file] cues. See Data Types doc page. Fixes 612. Thanks to deragon. | jeffjensen |
![]() |
Fix Ohloh to the update Open Hub terminology. Fixes 615. Thanks to mureinik. | jeffjensen |
![]() |
Streamed export does not work when it launched from Ant. Fixes 610. Thanks to zdenek-zikan. | jeffjensen |
![]() |
MSSQL IdentityInsertOperation.execute erroneously always commits. Fixes 493. Thanks to beskow. | jeffjensen |
![]() |
Outdated link on Configurable Features and Properties page. Fixes 608. Thanks to opporancisis. | jeffjensen |
Release 2.5.3 – Aug 21, 2016
| Type | Changes | By |
|---|---|---|
![]() |
Any characters with code greater than 7f are written to XML attribute value as entity. Fixes 602. Thanks to apechinsky. | jeffjensen |
![]() |
DbUnitAssert table name case sensitive problems. Fixes 597. Thanks to RafaelANTVS. | jeffjensen |
![]() |
ReplacementDataSet "ignores" its decorated DataSet's caseSensitiveTableNames setting. Fixes 599. Thanks to RafaelANTVS. | jeffjensen |
![]() |
Broken links to issues referenced in changes-report.html. Fixes 598. Thanks to jeffjensen. | jeffjensen |
![]() |
POM cleanup: remove "official" profile, consolidate config. Thanks to jeffjensen. | jeffjensen |
![]() |
Update site with new CI server info: http://dbunit.intertech.com/jenkins Thanks to jeffjensen. | jeffjensen |
![]() |
Can not obtain relations from several columns. Fixes 510. Thanks to jeffjensen. | jeffjensen |
![]() |
Running out of cell styles in XlsDataSetWriter. Fixes 586. Thanks to markarnold. | jeffjensen |
![]() |
Allow 'false' -> 0 and 'true' -> 1 for numeric fields. Fixes 498. Thanks to weifengli. | jeffjensen |
![]() |
Unable to insert row with Oracle XMLType. Fixes 582. Thanks to sidikcz. | jeffjensen |
![]() |
Add test showing XlsTable timezone issue first reported in issue 280. Fixes 579. Thanks to markarnold. | jeffjensen |
![]() |
Don't add timezone offset for XlsTable. Fixes 457. Thanks to mnt40. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase.verifyData() uses databaseTester.getConnection() and should use DatabaseTestCase.getConnection(). Thanks to jeffjensen. | jeffjensen |
![]() |
AbstractDatabaseConnection.createTable(String) ignores escape pattern for table name. Thanks to jeffjensen. | jeffjensen |
![]() |
TimestampDataType.typeCast() fails on non-local timezones. Fixes 589. Thanks to Kalnet-FS5. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase doesn't handle all DatabaseConfig access approaches, missing dbUnit lifecycle steps. Fixes 592. Thanks to jeffjensen. | jeffjensen |
Release 2.5.2 – Apr 8, 2016
| Type | Changes | By |
|---|---|---|
![]() |
Multi schema support in FlatXmlDataSets. Fixes 573. Thanks to warwing. | jeffjensen |
![]() |
Do not explicitly insert null into NOT NULL columns with DEFAULT. Fixes 562. Thanks to mjiderhamn. | jeffjensen |
![]() |
Add toString() to XlsTable and StreamingIterator. Fixes 571. Thanks to jeffjensen. | jeffjensen |
![]() |
dbunit.org domain owner did not renew it; fix links. Fixes 572. Thanks to jeffjensen. | jeffjensen |
![]() |
Make AbstractDataFileLoader.loadDataSet public and pull up to DataFileLoader interface. Thanks to jeffjensen. | jeffjensen |
![]() |
Postgres CITEXT data type support. Fixes 577. Thanks to zemertz. | jeffjensen |
![]() |
Add PrepAndExpectedTestCaseSteps for lambdas and eliminating try/catch/finally template for PrepAndExpectedTestCase. Thanks to jeffjensen. | jeffjensen |
Release 2.5.1 – April 11, 2015
| Type | Changes | By |
|---|---|---|
![]() |
Upgrade Apache POI library from "3.2-FINAL" to "3.11". Pull request 6, Enhancement 161. Fixes 497. Thanks to kazuhito-m. | jeffjensen |
![]() |
dBUnit does not pick up column aliases. Fixes 552. Thanks to tm14258. | jeffjensen |
![]() |
Add allowEmptyFields feature flag/property to prevent fail-fast and allow empty string fields. Fixes 561. Thanks to adamsiemion. | jeffjensen |
![]() |
BigIntegerDataType.setSqlValue() NPE when value is null. Fixes 567. Thanks to drissamri. | jeffjensen |
Release 2.5.0 – Apr 24, 2014
| Type | Changes | By |
|---|---|---|
![]() |
Use Sonatype OSSRH for snapshots and release sync to Central. Fixes 3578765. Thanks to jeffjensen. | jeffjensen |
![]() |
Add Postgres Geometry Type. Fixes 3499513. Thanks to MPriess. | jeffjensen |
![]() |
CsvURLProducer swallows exception stack. Fixes 3545861. Thanks to artbristol. | jeffjensen |
![]() |
Trim CSV file column names. Fixes 3554287. Thanks to statalex. | jeffjensen |
![]() |
DefaultPrepAndExpectedTestCase: Log exceptions for setupData, verifyData, cleanupData to help diagnosis of data problems. Thanks to jeffjensen. | jeffjensen |
![]() |
Fail fast and clearly when column value has no value; throws IllegalArgumentException. Thanks to jeffjensen. | jeffjensen |
![]() |
Update SLF4J and LogBack to latest versions. Thanks to jeffjensen. | jeffjensen |
![]() |
Update compileSource to 1.5. Thanks to jeffjensen. | jeffjensen |
![]() |
Update JUnit version to 4.11. Thanks to jeffjensen. | jeffjensen |
![]() |
H2DataTypeFactory does not properly support UUID data type. Fixes 553. Thanks to rburgstaller. | jeffjensen |
![]() |
DBUnit 2.4.9 needs java 6 to run. Fixes 541. Thanks to djeanprost. | jeffjensen |
![]() |
MySqlDataTypeFactory saves TINYINT(1) as String. Fixes 498. Thanks to weifengli. | jeffjensen |
![]() |
Special dataset syntax for UUIDs mapped to binary fields. Fixes 546. Thanks to timurstrekalov. | jeffjensen |
![]() |
Broken link on http://www.dbunit.org/issue-tracking.html. Fixes 544. Thanks to gavenkoa. | jeffjensen |
![]() |
SQLHelper Oracle Issue (autoincrement metadata problem). Fixes 535. Thanks to mrhcon01. | jeffjensen |
![]() |
Columns with defaults should be #IMPLIED in generated DTD. Fixes 559. Thanks to mjiderhamn. | jeffjensen |
Release 2.4.9 – Sep 30, 2012
| Type | Changes | By |
|---|---|---|
![]() |
Change build to use current compiler on path vs 1.4. This is first dbUnit release done with JDK 6. If you encounter problems, please open a bug tracker item. Fixes 3573007. Thanks to jeffjensen. | jeffjensen |
![]() |
Add toString() methods to AbstractResultSetTable, ForwardOnlyResultSetTable, ScrollableResultSetTable, ColumnFilterTable. Thanks to jeffjensen. | jeffjensen |
![]() |
For DefaultPrepAndExpectedTestCase, catch, log, and rethrow all log messages to help with troubleshooting. Tweak log messages. Improve doc example. Thanks to jeffjensen. | jeffjensen |
![]() |
Add schema name, if specified, to table name in query in AbstractDatabaseConnection.createTable(). Thanks to jeffjensen. | jeffjensen |
![]() |
New Handling of Timestamp in 2.4.8 has error with subseconds. Fixes 3071408. Thanks to chrisphe. | rlogiacco |
![]() |
AbstractDatabaseConnection createQueryTable throws UOEx. Fixes 3132130. Thanks to jeffjensen. | jeffjensen |
![]() |
Provides support for the uniqueidentifier type in Microsoft SQLServer. Fixes 3170998. Thanks to mcpierce. | jeffjensen |
![]() |
To help troubleshooting, add table name to Operation exceptions: refresh, delete, insert, update. Thanks to jeffjensen. | jeffjensen |
Release 2.4.8 – Sep 2, 2010
| Type | Changes | By |
|---|---|---|
![]() |
MSSQL JDBC Driver 3.0 doesn't work well. Fixes 3027485. Thanks to Yishai. | gommma |
![]() |
NPE when setting properties. Fixes 3022281. Thanks to wujeksrujek. | gommma |
![]() |
Wrong value for property "datatypeFactory". Fixes 2993712. Thanks to glesatsf. | gommma |
![]() |
Added driver for Mckoi db. Fixes 2986323. Thanks to LuigiTalamona. | gommma |
![]() |
SQL: "Create Domain" ... Data Types are not supported. Fixes 2887115. Thanks to unwissender2009. | gommma |
![]() |
Additional refinements for Oracle SDO_GEOMETRY datatype. Fixes 2875253. Thanks to caseylucas. | johnbhurst |
![]() |
Add timezone support for timestamp data type. Fixes 2921131. Thanks to vlamp. | johnbhurst |
![]() |
OracleDataTypeFactory recognises "SYS.XMLTYPE". Fixes 2919427. Thanks to dbamberghi (Daniele Bamberghi). | johnbhurst |
![]() |
Add "file loader" utility (DataFileLoader) for various data file types. Fixes 2938029. Thanks to jeffjensen. | jeffjensen |
![]() |
Add new TestCase that supports prepare and expected datasets: "DefaultPrepAndExpectedTestCase" Thanks to jeffjensen. | jeffjensen |
Release 2.4.7 – Nov 09, 2009
| Type | Changes | By |
|---|---|---|
![]() |
dtd for XmlDataSet. Fixes 2685615. Thanks to lumpynose. | gommma |
![]() |
Column sensing not available for InputStream. Fixes 2866150. Thanks to rlogiacco. | gommma |
![]() |
DatabaseSequenceFilter fails on case sensitive tables. Fixes 2741077. Thanks to DnAp. | gommma |
![]() |
DB2 problem with schema names. Fixes 2838922. Thanks to matthieus, simon_wu. | gommma |
![]() |
Handle non-typical characters in xml encoding. Fixes 2875262. Thanks to caseylucas. | gommma |
![]() |
Fix integration tests. Fixes 2875235. Thanks to johnbhurst. | johnbhurst |
![]() |
FK table sorting does not work with cross-schema FKs. Fixes 2880113. Thanks to jherico. | gommma |
![]() |
Replaced reflection-based Oracle data types with static calls. Fixes 2876909. Thanks to johnbhurst. | johnbhurst |
![]() |
Add support for Oracle SDO_GEOMETRY datatype. Fixes 2875253. Thanks to caseylucas. | johnbhurst |
![]() |
Improvements to the ant operation task. Fixes 2884634. Thanks to yanm-sdfc. | gommma |
![]() |
MsSqlDataTypeFactory does not support MS SQL 2005 NTEXT. Fixes 2889757. Thanks to carcher. | gommma |
Release 2.4.6 – Sep 20, 2009
| Type | Changes | By |
|---|---|---|
![]() |
Add support for interval type on postgres. Fixes 284432. Thanks to jamesr. | rlogiacco |
![]() |
Changed some verbose logging statements from INFO to DEBUG level Thanks to felipeal. | felipeal |
![]() |
DefaultDataSet is incompatible w/ AbstractDataSet's IDataSet. Fixes 2797698. Thanks to mkienenb. | gommma |
![]() |
XlsTable - empty excel columns cause problem. Fixes 2818981. Thanks to verreckenk. | gommma |
![]() |
Support for Postgres' inet types. Fixes 2824505. Thanks to agnul. | gommma |
![]() |
primaryFilterKey is not always respected. Fixes 2823165. Thanks to porkchop009. | gommma |
![]() |
Nullable tinyint on mysql cannot be inserted. Fixes 2831696. Thanks to kalpana. | gommma |
![]() |
Unify dbunit features and properties. Fixes 2806016. Thanks to gommma. | gommma |
![]() |
Support for Postgresql Enum. Fixes 2833897. Thanks to user2037. | gommma |
![]() |
DB2 problem with schema names. Fixes 2838922. Thanks to matthieus. | gommma |
![]() |
Support for Oracle ROWID Thanks to gommma. | gommma |
![]() |
AbstractTableMetaData hardcoded dependency on IDataTypeFactory. Fixes 2856524. Thanks to johnbhurst. | gommma |
![]() |
Numbers with more than 19 digits cannot be saved in a BIGINT column. Fixes 2858410. Thanks to acecacec. | gommma |
![]() |
Sybace - SQLHelper.getDatabaseInfo exception getDatabaseMajorVersion(). Fixes 2854788. Thanks to olibye. | gommma |
![]() |
DBUnit support for Netezza database. Fixes 2828869. Thanks to amit3011. | gommma |
Release 2.4.5 – May 22, 2009
| Type | Changes | By |
|---|---|---|
![]() |
Add Excel support to Export. Fixes 2633859. Thanks to tjstavenger-pnnl. | gommma |
![]() |
MySQL - NoSuchTableException. Fixes 2658082. Thanks to Bernard Schubach. | gommma |
![]() |
Have DbUnitAssert use JUnit only if present. Fixes 2658136. Thanks to ejain. | gommma |
![]() |
Oracle BINARY_DOUBLE+BINARY_FLOAT support. Fixes 2645688. Thanks to reidmp. | gommma |
![]() |
specify the schema via the api. Fixes 2684042. Thanks to lumpynose. | gommma |
![]() |
XslTableTest.testDifferentDatatypes() fails (in trunk). Fixes 2783773. Thanks to cyberroadie. | gommma |
![]() |
Breaking change and likely bug in XlsTable.java. Fixes 2709501. Thanks to al0. | gommma |
![]() |
Support for UUID data type Postgresql. Fixes 2783531. Thanks to cyberroadie, firsttiger. | gommma |
Release 2.4.4 – Feb 24, 2009
| Type | Changes | By |
|---|---|---|
![]() |
Better extensibility for XmlDataSetWriter. Fixes 2524180. Thanks to gommma. | gommma |
![]() |
XlsDataSet.write. Fixes 2542079. Thanks to nemuzuka. | gommma |
![]() |
Mysql FEATURE_QUALIFIED_TABLE_NAMES column SQLHelper.matches. Fixes 2545095. Thanks to jhattat. | gommma |
![]() |
overridden setUpDatabaseConfig not called. Fixes 2567724. Thanks to armandjanssen. | gommma |
![]() |
DB2 problem after 2.4. Fixes 2549683. Thanks to chuanghs. | gommma |
![]() |
Mysql Linux metatdata UpperCase Comparison. Fixes 2517257. Thanks to jhattat. | gommma |
![]() |
JTDS Driver causes warning in class AbstractTableMetaData. Fixes 2616420. Thanks to ihr-staal. | gommma |
![]() |
Add DatabaseConnection methods to support PreparedStatements. Fixes 1956543. Thanks to jeffjensen. | gommma |
Release 2.4.3 – Jan 20, 2009
| Type | Changes | By |
|---|---|---|
![]() |
Simplify use of custom datatype factory for DBTestCase. Fixes 2023994. Thanks to marney. | gommma |
![]() |
problem when verifying against an XmlDataSet. Fixes 2475264. Thanks to erik.van.zijst. | gommma |
![]() |
IDENTITY_INSERT : Check for identity column incorrect. Fixes 1182289. Thanks to jamapor. | gommma |
![]() |
possibly i18n problem. Fixes 1537894. Thanks to skuzey. | gommma |
![]() |
FailureHandler is not propagated to data comparison stage. Fixes 2494501. Thanks to rogerrabbitpro. | gommma |
![]() |
Warning message "PostgreSQL not be supported". Fixes 2486800. Thanks to macha64. | gommma |
![]() |
short BLOB are not correctly managed. Fixes 1690721. Thanks to cdubet. | gommma |
![]() |
MySQL AmbiguousTableNameException incorrectly thrown. Fixes 2489228. Thanks to xianpants. | gommma |
![]() |
TableName pattern filtering. Fixes 1452382. Thanks to akhilss. | gommma |
Release 2.4.2 – Dec 17, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Cannot extract contents of table with a column named "AS". Fixes 2356800. Thanks to finneyj-gh. | gommma |
![]() |
MySQL case sensitive problem in dataset creation. Fixes 2382766. Thanks to DaCoTa. | gommma |
![]() |
Add StringIgnoreCase DataType. Fixes 2390557. Thanks to gommma. | gommma |
![]() |
FEATURE_CASE_SENSITIVE_TABLE_NAMES doesn't work completely (fixed wrong DatabaseConfig property). Fixes 2391757. Thanks to juergenzimmermann. | gommma |
![]() |
org.dbunit.dataset.datatype.TypeCastException. Fixes 2392770. Thanks to nemuzuka. | gommma |
![]() |
SLF4J maven dependencies aren't quite correct. Fixes 2398926. Thanks to xianpants. | gommma |
![]() |
Include table name in cyclic dependency exception. Fixes 2407106. Thanks to brentplump. | gommma |
![]() |
Insert fails on Oracle multiple schemas. Fixes 2439408. Thanks to claus437. | gommma |
Release 2.4.1 – Dec 03, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Updated slf4j dependencies to version 1.5.6. Thanks to gommma. | gommma |
![]() |
No metadata Tables found. Fixes 1628896. Thanks to jeromevdl. | gommma |
![]() |
Oracle problem rel 2.4 in createQueryTable. Fixes 2356010. Thanks to gommma. | gommma |
![]() |
Cannot insert table data with self-reference in 2.4.0. Fixes 2370993. Thanks to schedin. | gommma |
Release 2.4.0 – Nov 27, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Refactor Assertion class. Fixes 2235876. Thanks to felipeal. | felipeal |
![]() |
When comparing empty tables, column info should be ignored. Fixes 2198914. Thanks to felipeal. | felipeal |
![]() |
Added "constants" for DatabaseOperation wrappers. Fixes 2122413. Thanks to felipeal. | felipeal |
![]() |
ISearchAlgorithm.search returns strongly typed ListOrderedSet instead of a normal Set so that TableDependencyHelper can return tables in correct order. API change. Thanks to gommma. | gommma |
![]() |
XmlWriter can't write nested CDATA sections. Fixes 1628105. Thanks to ozonobon. | gommma |
![]() |
XMLType Support for Oracle - Again. Fixes 1464982. Thanks to philbarr. | gommma |
![]() |
QueryDataSet does not cache query results - Implies API change - new method IDatabaseConnection.createTable(String tableName). Fixes 2122773. Thanks to MadMatt04. | gommma |
![]() |
Fail-Fast if AmbiguousTableNames found. Fixes 2132121. Thanks to gommma. | gommma |
![]() |
[PATCH] Support Oracle SQLLoader files for datasets - refactored the CSV Pipeline infrastructure so that it can be reused for sqlldr files. Fixes 1735092. Thanks to stritti. | gommma |
![]() |
Updated apache commons-collections from 3.1 to 3.2.1 Thanks to gommma. | gommma |
![]() |
BigDecimal values read by XlsDataSet have wrong precision. Fixes 1159489. Thanks to SriniRang. | gommma |
![]() |
give tolerated delta as percentage in floating-point compare. Fixes 2148079. Thanks to gommma. | gommma |
![]() |
Remove commons-lang dependency. Fixes 2148099. Thanks to gommma. | gommma |
![]() |
DbUnitTask#createConnection. Fixes 1180734. Thanks to che---. | gommma |
![]() |
FlatDtdProducer does not support Element dataset ANY. Fixes 1432308. Thanks to hackmann. | gommma |
![]() |
tinyint being ignored. Fixes 1344618. Thanks to ianjoyce. | gommma |
![]() |
DBUnit does not recognise "Unsigned" INTEGER columns. Fixes 1194928. Thanks to rahulr. | gommma |
![]() |
FlatXMLdataSet counts 14 tables instead of 1 table of 14 row. Fixes 1063128. Thanks to djocal. | gommma |
![]() |
Better reporting of extra columns in FlatXmlProducer. Fixes 2163902. Thanks to olegch. | gommma |
![]() |
BufferedConsumer never cleans _allRows. Fixes 2163897. Thanks to olegch. | gommma |
![]() |
new SortedTable throws NoSuchColumnException. Fixes 2119648. Thanks to powerlord. | gommma |
![]() |
QueryDataSet does not cache query results. Fixes 2122773. Thanks to MadMatt04. | gommma |
![]() |
problem because tableName is case insensitive. Fixes 1214252. Thanks to bilaco. | gommma |
![]() |
DatabaseSequenceFilter infinite loop on cyclic dependency. Fixes 1531883. Thanks to fordfrog. | gommma |
![]() |
Performance improvement in Assertions.assertEquals(ITable expected, ITable actual) - Lookup the DataTypes for every column only once and not for every single row Thanks to gommma. | gommma |
![]() |
Field forgot under insert step - enabled columnSensing feature for ant task when format "flat" is used. Fixes 2166291. Thanks to lyrzine. | gommma |
![]() |
Need a way to NOT pretty format xml. Fixes 1196357. Thanks to ips_khanwale. | gommma |
![]() |
Additional column info also for filtered columns. Fixes 2212329. Thanks to gommma. | gommma |
![]() |
QuerySet docs (includes little refactoring). Fixes 1277038. Thanks to lenny. | gommma |
![]() |
add primaryKeyFilter-Property in ant. Fixes 2041400. Thanks to moschen. | gommma |
![]() |
Make configuration elements settable in ant (see 2041400). Fixes 1371813. Thanks to dsyer. | gommma |
![]() |
Choose encoding for ant export task. Fixes 1108976. Thanks to Matty70. | gommma |
![]() |
Share transaction with InsertIdentityOp. Fixes 564041. Thanks to james_a_woods. | gommma |
![]() |
New Datatype MySqlDataTypeFactory. Fixes 1798605. Thanks to gianasista. | gommma |
![]() |
Remove JUnit dependency. Fixes 1897627. Thanks to felipeal. | gommma |
![]() |
Provide the complete diff of 2 tables. Fixes 2241776. Thanks to gommma. | gommma |
![]() |
MySqlDataTypeFactory incorrectly maps TinyInt. Fixes 2017635. Thanks to paul0al. | gommma |
![]() |
Excel processing error - update from POI-3.1-FINAL to POI-3.2-FINAL. Date values are read/written as Numeric values for now since the POI Date handling is not consistent (i.e. write Date and read the written Date do not provide equal Date objects). Fixes 2263530. Thanks to alekssokolov. | gommma |
![]() |
dataset generated with getAllDependentTables contradicts DTD. Fixes 2230097. Thanks to stevensa. | gommma |
![]() |
MetaData get() are Pattern-Like. Fixes 1644650. Thanks to j_linz. | gommma |
![]() |
Improvements on HxxxxDataFactory. Fixes 1897620. Thanks to felipeal. | gommma |
Release 2.3.0 – Sep 11, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Trimming is now done on Excel column names to prevent NoSuchColumnException. Fixes 1968640. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Patch for Bug #1421590 "Problem in data import if all the columns are not populated". Fixes 1981449. Thanks to gommma. | rlogiacco |
![]() |
NoSuchColumnException now thrown when column name does not exist. Fixes 1975499. Thanks to gommma. | tychobrailleur |
![]() |
Patch: some extra comparison methods for Assertion. Fixes 1969355. Thanks to yanm-sdfc. | gommma |
![]() |
Assertion.equals to provide more info about failure. Fixes 1966517. Thanks to gommma. | gommma |
![]() |
StreamingDataSet.toString() now returning default value rather UnsupportedOperationException. Fixes 1636182. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Performance optimization getColumnIndex() - Implies API change: new method ITableMetaData.getColumnIndex. Fixes 1993243. Thanks to gommma. | gommma |
![]() |
Support RowFilter on ITable. Fixes 1959771. Thanks to gommma. | gommma |
![]() |
support for tolerated delta in floating-point comparisons - Implies API change: new method IDataTypeFactory.createDataType(int sqlType, String sqlTypeName, String tableName, String columnName). Fixes 1961269. Thanks to gommma. | gommma |
![]() |
Added batchSize as a parameter. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Excel support in Ant task. Fixes 1358137. Thanks to rinkrank. | gommma |
![]() |
Bad comparison in SortedTable. Fixes 1176380. Thanks to easyproglife. | gommma |
![]() |
Added fetchSize as a parameter. Thanks to gommma. | gommma |
![]() |
ReplacementTable - allow fail if value not replaced. Fixes 1685474. Thanks to jacobrobertson. | gommma |
![]() |
Fixing erroneous logger.error in BytesDataType.typeCast(). Fixes 2009747. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Refactoring of column-related methods. Fixes 2004349. Thanks to gommma. | tychobrailleur |
![]() |
TablesDependencyHelper with Oracle schema bug - Implies API change - the constructors of DatabaseConnection throw a DatabaseUnitException if the connection/schema are not valid. Fixes 2007635. Thanks to phisf. | gommma |
![]() |
Assertion: replace Assert.fail with ComparisonFailure. Fixes 2010546. Thanks to dgolda. | gommma |
![]() |
Alternative support for CLOB and BLOB in Oracle 11 JDBC. Fixes 2010567. Thanks to dgolda. | gommma |
![]() |
datatypeFactory documentation note needed. Fixes 1499591. Thanks to loedolff. | gommma |
![]() |
getAllDependentTables ORA-01000: maximum open cursors exceed. Fixes 2014884. Thanks to pasha_z. | gommma |
![]() |
getAllDependentTables didn't work with full qualified names. Fixes 1746373. Thanks to ByTe-ErRoR. | gommma |
![]() |
Added constructors to NoSuchColumnException taking table name and column name as arguments - set old constructors to deprecated Thanks to gommma. | gommma |
![]() |
Exception in DTD generation - Implies API behaviour change. DatabaseTableMetaData.getColumns() does not throw a NoColumnsFoundExcepion anymore but returns an empty Column[] when a table does not have any dbunit-supported columns. Fixes 1789402. Thanks to Jondi. | gommma |
![]() |
Assertion.equals provides more information than just the column count when a column mismatch between expected and result tables was found. All columns are reported so that the user can see immediately which columns are missing Thanks to gommma. | gommma |
![]() |
Write validation message when the configured IDataTypeFactory probably does not match to the current database system. The validation implicitly takes place when AbstractTableMetaData.getDataTypeFactory() is invoked. Thanks to gommma. | gommma |
![]() |
Maven pom.xml updates: Added ciManagement section, added some plugins for reporting Thanks to gommma. | gommma |
![]() |
Test error: testExportWithQuerySet. Fixes 1497369. Thanks to bascan. | gommma |
![]() |
Topological sorting of tables when exporting. Fixes 2012491. Thanks to rpuch. | gommma |
![]() |
Use DataType.BLOB instead of DataType.LONGVARBINARY. Fixes 2012495. Thanks to rpuch. | gommma |
![]() |
DbUnit is only JDK 1.4 compatible and not 1.3 (as claimed until now). Several methods are in use that did not exist in JDK 1.3. To build with JDK 1.4 and maven it is now required to set the environment variable JAVA_1_4_HOME to your JDK 1.4 home directory Thanks to rpuch. | gommma |
![]() |
Update apache POI to latest release (2.5.1 -> 3.1). Fixes 2029693. Thanks to gommma. | gommma |
![]() |
Inserting of clobs fails. Fixes 1984596. Thanks to bustuila. | gommma |
![]() |
method getRowCount don't use schema. Fixes 1214234. Thanks to bilaco. | gommma |
![]() |
Column count for empty XlsDataSet returns 0. Fixes 1224643. Thanks to bugmenot. | gommma |
![]() |
Values with newlines cannot be compared with assertEquals. Fixes 948472. Thanks to gmathijssen. | gommma |
![]() |
Infinite wait in StreamingIterator. Fixes 1031870. Thanks to chadwl. | gommma |
![]() |
Types.BOOLEAN not recognized. Fixes 1144269. Thanks to berni123. | gommma |
![]() |
"compare" + "table" tag throw NoSuchTableException - added more information about the cause to the thrown exception. Fixes 1448932. Thanks to palsnagaraj. | gommma |
![]() |
DTD Creation and Parsing - throw meaningful exception if DTD ELEMENT declaration is missing. Fixes 1339675. Thanks to vanhill21. | gommma |
![]() |
Added more information in case of a wrong configured DataTypeFactory. Fixes 2059253. Thanks to andreaskornstaedt. | gommma |
Release 2.2.3 – May 23, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Missing License file in distribution jars. Fixes 1967969. Thanks to rlogiacco. | rlogiacco |
![]() |
Removed redundant and erroneous ERROR logging. Fixes 1925603. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Memory leak. Fixes 1955585. Thanks to rlogiacco. | rlogiacco |
![]() |
A warning message is now displayed when rows contain more columns than the first row. Thanks to tychobrailleur. | tychobrailleur |
Release 2.2.2 – May 5, 2008
| Type | Changes | By |
|---|---|---|
![]() |
End of table name cut off when bracketed in FlatDtdProducer. Fixes 1953115. Thanks to Mike Norrish. | rlogiacco |
![]() |
IncompatibleClassChangeError with 2.2.1. Fixes 1926302. Thanks to rlogiacco. | rlogiacco |
![]() |
junit jar-file should be JDK 1.4 compatible. Fixes 1955929. Thanks to rlogiacco. | rlogiacco |
![]() |
Version 2.2-dev, Java 1.4 compatibility issue. Fixes 1475565. Thanks to rlogiacco. | rlogiacco |
![]() |
Changed logger.error into logger.debug when the exception can be disregarded. Fixes 1925603. Thanks to tychobrailleur. | tychobrailleur |
![]() |
Fixed issue with CLOB datatype in Derby. Fixes 1806363. Thanks to Brian Atkinson. | tychobrailleur |
Release 2.2.1 – March 17, 2008
| Type | Changes | By |
|---|---|---|
![]() |
Added SLF4J dependency and logging statements Thanks to rlogiacco. | rlogiacco |
![]() |
Removed JUnit dependency on IDatabaseTester implementations. Fixes 1897627. Thanks to felipeal. | felipeal |
![]() |
Created H2 data factory. Fixes 1897612. Thanks to felipeal. | felipeal |
![]() |
New point Datatype on MySqlDataTypeFactory. Fixes 1798605. Thanks to Vera Wahler. | felipeal |
![]() |
Improvements on M2 build - Additional files. Fixes 1735506. Thanks to Greg Morgan. | felipeal |
![]() |
NPE in FlatDtdProducer.java at line 224. Fixes 1849219. Thanks to JensFransson. | rlogiacco |
![]() |
Bug in XmlWriter / escapeXml. Fixes 1849165. Thanks to Markus Thielen. | rlogiacco |
![]() |
Database schema with escape pattern doesn't work. Fixes 1786425. Thanks to rlogiacco. | rlogiacco |
![]() |
Misleading error reported by RowOutOfBoundsException. Fixes 1712122. Thanks to Chris R. Salch. | rlogiacco |
![]() |
NPE In InsertIdentityOperation. Fixes 1328956. Thanks to Reuben Firmin. | rlogiacco |
![]() |
DataSourceDatabaseTest does not use setSchema(). Fixes 1710743. Thanks to Will Sargent. | rlogiacco |
![]() |
Columns in ORDER BY Not Quoted. Fixes 1637089. Thanks to Chuck Hill. | rlogiacco |
![]() |
ReplacementTable broken for multiple replacements. Fixes 1214536. Thanks to Sébastien Le Callonnec. | rlogiacco |
![]() |
Null pointer exception in FlatXMLDataSet.write(compositeDS). Fixes 1721870. Thanks to Sébastien Le Callonnec. | rlogiacco |
![]() |
Null pointer exception in FlatXMLDataSet.write(compositeDS). Fixes 1721870. Thanks to Sébastien Le Callonnec. | rlogiacco |
![]() |
Problem with Oracle 10g Recyclebin. Fixes 1459205. Thanks to Sébastien Le Callonnec. | rlogiacco |
Release 2.2 – December 28, 2006
| Type | Changes | By |
|---|---|---|
![]() |
Enable TestCase compositions. Fixes 1473744. Thanks to aalmiray. | felipeal |
![]() |
Migrate SCM to Subversion Thanks to felipeal. | felipeal |
![]() |
Support for MySQL 5.0 boolean datatype. Fixes 1494257. Thanks to Bas Cancrinus. | felipeal |
![]() |
Added pom.xml so it can be built by Maven 2. Fixes 1482990. Thanks to felipeal. | felipeal |
![]() |
XmlDataSetWriter now has a flag to include column's name as comment. Thanks to felipeal. | felipeal |
![]() |
Added org.dbunit.util.search and org.dbunit.database.search packages, whose classes can be used to search tables depedencies for a given table. Fixes 1273949. Thanks to felipeal. | felipeal |
![]() |
Add "transaction" attribute to ant tasks to wrap operations in a single transaction. Can make operations faster. Fixes 1264212. Thanks to John Lewis. | epugh |
![]() |
Typo in howto example Thanks to Jeremy Frens. | epugh |
![]() |
Properly support writing NCLOBs to Oracle Thanks to Cris Daniluk. | epugh |
![]() |
Support CSV files from a URL (e.g. jar file) + CSV fixes. Fixes 1114490. Thanks to Dion Gillard. | epugh |
![]() |
Fix the driver in classpath/driver not in classpath to always work regardless of configured driver. Thanks to epugh. | epugh |
![]() |
Typo in test class AbstractDataSetTest. Fixes 1114487. Thanks to Dion Gillard. | epugh |
![]() |
new HsqldbDataTypeFactory for working with booleans in HsqlDB. Thanks to Klas Axell. | epugh |
Release 2.1 – May 31, 2004
| Type | Changes | By |
|---|---|---|
![]() |
741394 - New database compare Ant tag. See Ant task documentation. | - |
![]() |
New Comma Separated Values (CSV) dataset implementation. Thanks to fspinazzi. | fspinazzi |
![]() |
824328 & 948479 - Ability to add DOCTYPE declaration when writing a flat Xml dataset. See FAQ. | - |
![]() |
884422 - FlatDtdWriter has now the ability to generate DTDs with choice model instead of sequence model. | - |
![]() |
Ability to import external file for binary data types like BLOB; the value can be either a qualified URL or a file path name. | - |
![]() |
Do not omit NULL values anymore in INSERT statements. Now only XmlDataSet's <none/> tag are omitted. With FlatXmlDataSet you must use the ReplacementDataSet to achieve the same behavior. | - |
![]() |
937732 - XlsDataSet now use UTF-16 encoding to support Asian characters. Patch submitted by Shuhei Kondo. | - |
![]() |
Applied XlsTable empty table detection patch submitted by Deepak Kaimal. | - |
![]() |
Added back FlatXmlDataSet constructors taking URL as argument missing in version 2.0. | - |
![]() |
918631 & 925585 - Fixed FlatXmlDataSet constructors taking InputStream/Reader for loading DTD. | - |
![]() |
DELETE_ALL operation now deletes tables only *once* in reverse order they are encountered. Before, duplicate tables were resulting in multiple deletes. Patch submitted by John Hurst. | - |
![]() |
DELETE_ALL operation now compatible with StreamingDataSet. | - |
![]() |
947330 - Now closing ResultSet before Statement to fix exceptions thrown by the Firebird JDBC driver and the OpenBase 8.0 JDBC driver. | - |
![]() |
921869 - Fixed ParameterIndexOutOfBoundsException with InterBase. | - |
![]() |
947809 - Moved createMetaData() static method from AbstractResultSet to DatabaseTableMetaData and made it public. Can now be used to create ITable from a ResultSet. | - |
![]() |
Support for large Oracle BLOB. Must use OracleDataTypeFactory. | - |
![]() |
Oracle LONG RAW data type support via OracleDataTypeFactory. Original patch submitted by Markus Muller. | - |
![]() |
Added back support for Oracle FLOAT missing in DbUnit 2.0. Must use OracleDataTypeFactory. | - |
![]() |
Support for Oracle NCHAR2 as proposed by Deepak Kaimal. Must use OracleDataTypeFactory. | - |
![]() |
Added DataType.isDateTime() method proposed by Ayman Mahfouz. | - |
![]() |
726366 & 884422 - Added IColumnFilter interface. Can be used to filter out some table columns. See FAQ. | - |
![]() |
Renamed ITableFilter.isValidName() method to accept() to be consistent with the new IColumnFilter interface. | - |
![]() |
955354 - Ability to determine the primary keys with IColumnFilter interface instead of DatabaseMetaData.getPrimaryKeys(). Primary keys sequence is not predictable when using filter. See FAQ. | - |
![]() |
Ability to plug custom IDENTITY column detection strategy for InsertIdentityOperation when using user defined types. See FAQ. | - |
![]() |
Added DefaultTableFilter class, which combines capability of the Include/ExcludeTableFilter classes. | - |
Release 2.0 – January 22, 2004
| Type | Changes | By |
|---|---|---|
![]() |
Mavenized the build and the website! | - |
![]() |
Now use SAX2 instead of Electric XML DOM parser. Streamed mode allows importing and exporting very large XML datasets with minimal memory consumption. | - |
![]() |
Flat XML dataset validation. | - |
![]() |
New ITableIterator interface used to iterate thru dataset tables. Allows lazy tables initialization for some dataset implementations. The IDataSet.getTables method have been deprecated and usage should be avoided. | - |
![]() |
Global System properties are not supported anymore. You must now use the new DatabaseConfig object to alter DbUnit behaviours. | - |
![]() |
Configurable data type factory to easily integrates new data types with the DbUnit core. Factory implementations available for some database vendors. Submit your own! | - |
![]() |
Oracle TIMESTAMP data type support via the OracleDataTypeFactory. | - |
![]() |
Fix truncated Oracle DATE. Must use the OracleDataTypeFactory. | - |
![]() |
Fix for Oracle CLOB greater than 4000 bytes. Must use the OracleDataTypeFactory. | - |
![]() |
MySQL 'longtext' data type support via the MySqlDataTypeFactory. | - |
![]() |
DB2 XML data types support via the Db2DataTypeFactory. | - |
![]() |
Database views support. | - |
![]() |
New pluggable filter strategies for DataSetFilter. You can now exclude/include tables using wildcard patterns. | - |
![]() |
Ability to sort tables by their dependencies with the new DatabaseSequenceFilter strategy. | - |
![]() |
New ReplacementDataSet decorator, which can replace decorated dataset values on the fly. Can be used with flat XML dataset as a new way to specify null values. | - |
![]() |
New XlsDataSet. An MS Excel dataset implementation. Uses the Jakarta POI package. | - |
![]() |
Assertion.assertEquals is now performing typed comparison instead of string representation comparison. | - |
![]() |
INSERT, CLEAN_INSERT and REFRESH operations do not override database default values anymore with null values. Null values are now omitted from insert statements. Operations use multiple prepared statements for the same table, when null values vary from row to row. | - |
![]() |
Moved InsertIdentityOperation to "org.dbunit.ext.mssql" package to be consistent with other vendor extensions. Temporary keep a deprecated copy in "org.dbunit.operation.mssqlserver" to ease transition to DbUnit 2. | - |
Release 1.5.6 – October 5, 2003
| Type | Changes | By |
|---|---|---|
![]() |
786543 - NULL primitive values incorrectly returned as zero (0). | - |
![]() |
Fix Oracle CLOB values incorrectly returned as NULL. | - |
Release 1.5.5 – July 16, 2003
| Type | Changes | By |
|---|---|---|
![]() |
DatabaseDataSet improvements: faster access to metadata cache and keep original database table ordering. | - |
![]() |
Better handling of the various data types in general. WARNING! New abstract methods have been added to the DataType class. This change may break your environment if you have implemented your own data types. | - |
![]() |
More efficient XmlDataSet writing. Now put values in CData block only when necessary. | - |
![]() |
Do not enable batched statement by default anymore. Many JDBC drivers have problems with this feature. | - |
![]() |
Fixed table name issue with case sensitive database. | - |
![]() |
615636 & 735095 - Incorrect XML encoding. Better handling of the XML encoding while writing and reading XML datasets. InputStream and OutputStream methods in XML dataset implementations are no more deprecated. | - |
![]() |
736439 - Problems with InsertOperation and triggers. | - |
![]() |
736967 - Wrong scale for numeric value with the jConnect driver for Sybase ASE. | - |
Release 1.5.1 – April 4, 2003
| Type | Changes | By |
|---|---|---|
![]() |
Fixed DELETE operation that was not deleting tables in reverse order as expected. | - |
![]() |
712329 - setObject fails on BEA JDriver for MS-SQL. | - |
![]() |
DbUnitTask DTD export optimization. | - |
![]() |
REFRESH operation optimization. | - |
Release 1.5 – March 1, 2003
| Type | Changes | By |
|---|---|---|
![]() |
Multiple bugfixes. | - |
![]() |
533321 - DbUnit is now case insensitive. | - |
![]() |
555455- Supports table names escaping (see escapePattern property). | - |
![]() |
551925 - Allows duplicate table names in datasets. A new method, getTables(), have been added in the IDataSet interface. | - |
![]() |
590245 & 684610 - New Reader and Writers methods to read and write XML datasets. InputStream and OutputStream methods are now deprecated. | - |
![]() |
New SortedTable and SortedDataSet decorator classes. | - |
![]() |
645691 - Added the <classpath> nested element in DbUnitTask ant task; used to load the JDBC classes. | - |
![]() |
Added <query> nested element in DbUnitTask <export>. Allows exporting the result of a SELECT as a table of a dataset. See ant task documentation. | - |
![]() |
New Canoo Webtest integration guide. | - |
Release 1.4 – July 17, 2002
| Type | Changes | By |
|---|---|---|
![]() |
DbUnitTask for Ant contributed by Timothy Ruppert and Ben Cox. | - |
![]() |
Moved the Base64 class to the org.dbunit.util package because Visual Age for Java is not able to handle classes located in the default package. | - |
![]() |
Added system properties documentation. | - |
![]() |
542034 - Detect ambiguous table names. | - |
![]() |
542462 - Added a system property to disable usage of batch statement even if the target database support it.. | - |
![]() |
545238 - Sort tables prior to comparing them. DbUnit now generates an ORDER BY clause in the select statement used by DatabaseDataSet.getTable(). Rows are sorted by primary keys. | - |
![]() |
554249 - None column values. | - |
![]() |
Added support for BLOB and CLOB data types. | - |
Release 1.3 – April 4, 2002
| Type | Changes | By |
|---|---|---|
![]() |
Added support for binary data types: BINARY, VARBINARY and LONGVARBINARY. Binary data is persisted in xml datasets using the base64 encoding scheme. | - |
![]() |
Deprecated the DataSetUtils.assertEquals() methods. You should now use Assertion.assertEquals(). | - |
![]() |
533537 - FlatXmlDataSet and null values. | - |
![]() |
533537 - Problem with single quotes. | - |
![]() |
534810 - Problem when primary key include all columns | - |
Release 1.2.4 – March 19, 2002
| Type | Changes | By |
|---|---|---|
![]() |
Added support for multiple schemas per connection. See FAQ document. | - |
![]() |
Removed element <none/> from dataset.dtd. This feature was incompatible with future support for the binary data types. | - |
![]() |
530998 - DataSetUtils.AssertEquals(ITable table, ITable table). | - |
![]() |
533540 - Problem with DATE, TIME and TIMESTAMP. | - |
Release 1.2 – March 15, 2002
| Type | Changes | By |
|---|---|---|
![]() |
Added the flat XML dataset format. See the FlatXmlDataSet in Core Components document. | - |
![]() |
Added database data verification feature. See Getting Started document. | - |
![]() |
Updated Electric XML parser to version 3.2. | - |
Release 1.1 – March 10, 2002
| Type | Changes | By |
|---|---|---|
![]() |
Connections are now closed in each setUp() and tearDown(). You must override the DatabaseTestCase.closeConnection() and provide an empty body to modify this behavior. This is not recommended to bypass connection close if you use connection pooling. | - |
![]() |
Added the IDatabaseConnection interface. | - |
![]() |
Added the DatabaseDataSourceConnection class. This class provides support for accessing JDBC connections from a DataSource. JDBC connections are requested on demand from the DataSource. | - |
![]() |
Multiple performance improvement. | - |
![]() |
526235 - Cannot export tables with JDBC-ODBC bridge and MS-SQL. | - |
Release 1.0 – Febuary 27, 2002
No changes in this release.






