Кажется, это ошибка в драйвере DB2.
Если вы посмотрите свой журнал, у вас есть свободное место в имени схемы. Это имя схемы возвращается драйвером DB2. Исправление, которое было реализовано для этой конкретной ошибки в последнем источнике dbunit (ошибка 2838922).
Как уже упоминалось в сообщении об ошибке 2838922, это может не решить проблему полностью.
Если это так, то для решения остающейся проблемы необходимо реализовать собственный IMetadataHandler, взяв за образец по умолчанию и изменив метод «совпадения» следующим образом:
...
boolean areEqual =
areEqualIgnoreBothNull(catalog, catalogName, caseSensitive) &&
areEqualIgnoreNull(schema, schemaName, caseSensitive) &&
areEqualIgnoreNull(table, tableName, caseSensitive) &&
areEqualIgnoreNull(column, columnName, caseSensitive);
return areEqual;
private boolean areEqualIgnoreBothNull(String value1, String value2,
boolean caseSensitive) {
boolean areEqual = true;
if (value1 != null && value2 != null) {
if (value1.equals("") && value2.equals("")) {
if (caseSensitive) {
areEqual = value1.equals(value2);
} else {
areEqual = value1.equalsIgnoreCase(value2);
}
}
}
return areEqual;
}
(вы также можете решить первую проблему с именем схемы в своем IMetadataHandler, обрезав имя схемы перед проверкой на равенство)
На странице http://dbunit.sourceforge.net/properties.html показано, как заменить реализацию IMetadataHandler.