AVRO Tool 1.8.2 - выдает ошибку. Причина: java.io.IOException: недопустимая синхронизация! в строке 245

У меня есть требование объединить файлы avro и отправить их в хранилище BLOB-объектов Azure. Я объединил его, а затем снова пытаюсь прочитать и получаю ошибку.

У меня есть файл, в котором файлы avro объединены с помощью snappy. При выполнении следующей команды:

java -jar .\avro-tools-1.8.2.jar tojson inputfile

Я получаю ошибку

Exception in thread "main" org.apache.avro.AvroRuntimeException: java.io.IOException: Invalid sync!

Я отлаживал код и строку ниже, где syncBufferis по сравнению с header.sync вызывает проблему. Любые идеи, в чем может быть проблема.

DataFileStream.DataBlock nextRawBlock(DataFileStream.DataBlock reuse) throws IOException {
    if (!this.hasNextBlock()) {
        throw new NoSuchElementException();
    } else {
        if (reuse != null && reuse.data.length >= (int)this.blockSize) {
            reuse.numEntries = this.blockRemaining;
            reuse.blockSize = (int)this.blockSize;
        } else {
            reuse = new DataFileStream.DataBlock(this.blockRemaining, (int)this.blockSize);
        }

        this.vin.readFixed(reuse.data, 0, reuse.blockSize);
        this.vin.readFixed(this.syncBuffer);
        this.availableBlock = false;
        if (!Arrays.equals(this.syncBuffer, this.header.sync)) {
            throw new IOException("Invalid sync!");
        } else {
            return reuse;
        }
    }
}

Какой смысл показывать одну строчку кода?

President James K. Polk 02.04.2018 15:58

Это код из библиотеки, я отлаживал в библиотеке. пытаюсь определить, что ломается.

Mukesh Katariya 02.04.2018 16:16

открытый класс DataFileWriter <D> реализует Closeable, Flushable --- что такое использование интервала синхронизации? есть ли шанс, что если содержимое моего файла невелико, маркер синхронизации не будет записан?

Mukesh Katariya 02.04.2018 18:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
1 233
0

Другие вопросы по теме