aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-02-16 15:18:11 +0000
committerArne H Juul <arnej@yahooinc.com>2022-02-16 15:18:11 +0000
commitbb7c40435ff9f80c47cba77fbae7f2276171adf1 (patch)
treee30a52a9aec4e0b8eb8f8818f87c7b94f4cb9ad9 /document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
parent90694216f0c1cd2dcb43fa346051949c72a9a438 (diff)
avoid using getHeader() in serialization code
Diffstat (limited to 'document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java')
-rw-r--r--document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java16
1 files changed, 6 insertions, 10 deletions
diff --git a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
index 757356e3096..4afab9233c6 100644
--- a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
+++ b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
@@ -116,13 +116,11 @@ public class VespaDocumentDeserializer6 extends BufferSerializer implements Docu
doc.setDataType(readDocumentType());
doc.setId(documentId);
- Struct h = doc.getHeader();
- h.clear();
if ((content & 0x2) != 0) {
- readHeaderBody(h);
+ readHeaderBody(doc);
}
if ((content & 0x4) != 0) {
- readHeaderBody(h);
+ readHeaderBody(doc);
}
if (dataLength != (position() - dataPos)) {
@@ -322,15 +320,12 @@ public class VespaDocumentDeserializer6 extends BufferSerializer implements Docu
buf = bigBuf;
}
- private void readHeaderBody(Struct primary) {
- primary.setVersion(version);
-
+ private void readHeaderBody(Document target) {
if (version < 8) {
throw new DeserializationException("Illegal document serialization version " + version);
}
int dataSize = getInt(null);
-
byte comprCode = getByte(null);
CompressionType compression = CompressionType.valueOf(comprCode);
@@ -366,7 +361,8 @@ public class VespaDocumentDeserializer6 extends BufferSerializer implements Docu
// for a while: deserialize from this buffer instead:
buf = GrowableByteBuffer.wrap(destination);
- StructDataType priType = primary.getDataType();
+ StructDataType priType = target.getDataType().contentStruct();
+
for (int i=0; i<numberOfFields; ++i) {
int posBefore = position();
Integer f_id = fieldIdsAndLengths.get(i).first;
@@ -374,7 +370,7 @@ public class VespaDocumentDeserializer6 extends BufferSerializer implements Docu
if (structField != null) {
FieldValue value = structField.getDataType().createFieldValue();
value.deserialize(structField, this);
- primary.setFieldValue(structField, value);
+ target.setFieldValue(structField, value);
}
//jump to beginning of next field:
position(posBefore + fieldIdsAndLengths.get(i).second.intValue());