Avro 1.12.0 больше не позволяет переопределять вложенные записиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Avro 1.12.0 больше не позволяет переопределять вложенные записи

Сообщение Anonymous »

Если у меня есть два файла avsc, плагин будет создавать разные объекты для записей до версии 1.12.0. Но поскольку эта версия плагина avro выдает ошибку «Невозможно переопределить» в ParseContext.java.
1-я схема:

Код: Выделить всё

{
"type": "record",
"name": "MessageKey",
"namespace": "com.example.domain",
"doc": "Kafka message key.",
"fields": [
{
"name": "id",
"type": {
"type": "string",
"avro.java.string": "String"
},
"doc": "The ID."
},
{
"name": "provenance",
"type": {
"name": "Provenance",
"type": "record",
"fields": [
{
"name": "orderId",
"type": "boolean"
}
]
}
}
]
}
2-я схема:

Код: Выделить всё

{
"type": "record",
"name": "Programme",
"namespace": "com.example.domain",
"doc": "A Programme.",
"fields": [
{
"name": "id",
"type": {
"type": "string",
"avro.java.string": "String"
},
"doc": "The id of the programme."
},
{
"name": "provenance",
"type": {
"name": "Provenance",
"type": "record",
"fields": [
{
"name": "orderId",
"type": "boolean"
}
]
}
}
]
}
Попробовал отладку, обнаружил, что ParseContext выдает ошибку «Невозможно переопределить:» в строке 219. Он проверяет посещенные объекты, является ли структура схемы с тем же именем одинаковой.Уже посещенный и ожидаемый объект сравнения

Код: Выделить всё

{"name":"Provenance","type":"record","fields":[{"name":"orderId","type":"boolean"}]}
,
но затем тот же объект находится во второй раз, и он по какой-то причине отличается:

Код: Выделить всё

{"type":"record","name":"Provenance","namespace":"com.example.domain"}


Подробнее здесь: https://stackoverflow.com/questions/789 ... redefining
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»