ArrayIndexOutOfBoundsException при вызове handleEvent - PullRequest
0 голосов
/ 13 марта 2019

В методе "io.debezium.relational.TableSchemaBuilder.createValueGenerator" есть несколько кодов, приведенных ниже:

return (row) -> {
            Struct result = new Struct(schema);
            for (int i = 0; i != numFields; ++i) {
                Object value = row[recordIndexes[i]];
                ValueConverter converter = converters[i];
                if (converter != null) {
                    value = value == null ? value : converter.convert(value);
                    try {
                        result.put(fields[i], value);
                    } catch (DataException e) {
                        Column col = columns.get(i);
                        LOGGER.error("Failed to properly convert key value for '{}.{}' of type {} for row {}:",
                                     columnSetName, col.name(), col.typeName(), row, e);
                    }
                }
            }
            return result;
        };

В крайних случаях row.size не равен numFields, поэтому выбрасывается ArrayIndexOutOfBoundsException.

напр.Если не удалось зафиксировать смещения, и задача соединителя завершается. Перед тем как перезапустить соединитель, добавлен столбец и сгенерирована новая схема таблицы. Так, данные из старого смещения не соответствуют текущей схеме таблицы. Белые коды генерируют исключение ArrayIndexOutOfBoundsException

...