This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-java.git
The following commit(s) were added to refs/heads/main by this push:
new bd3a6ee4e MINOR: Add private constructor to UuidType singleton (#945)
bd3a6ee4e is described below
commit bd3a6ee4efbd637e814867637b6e7b7f8f09bcc8
Author: Tamas Mate <[email protected]>
AuthorDate: Fri Jan 9 13:43:33 2026 +0100
MINOR: Add private constructor to UuidType singleton (#945)
Add private constructor to UuidType singleton.
---
.../java/org/apache/arrow/c/RoundtripTest.java | 81 ++--------------------
.../java/org/apache/arrow/vector/UuidVector.java | 4 +-
.../apache/arrow/vector/extension/UuidType.java | 2 +
.../org/apache/arrow/vector/TestListVector.java | 10 +--
.../org/apache/arrow/vector/TestMapVector.java | 8 +--
.../org/apache/arrow/vector/TestStructVector.java | 4 +-
.../java/org/apache/arrow/vector/TestUuidType.java | 26 +++----
.../vector/complex/impl/TestComplexCopier.java | 10 +--
.../vector/complex/impl/TestPromotableWriter.java | 5 +-
.../vector/complex/writer/TestComplexWriter.java | 2 +-
10 files changed, 42 insertions(+), 110 deletions(-)
diff --git a/c/src/test/java/org/apache/arrow/c/RoundtripTest.java
b/c/src/test/java/org/apache/arrow/c/RoundtripTest.java
index 010a30549..f6ff88571 100644
--- a/c/src/test/java/org/apache/arrow/c/RoundtripTest.java
+++ b/c/src/test/java/org/apache/arrow/c/RoundtripTest.java
@@ -35,7 +35,6 @@ import java.util.stream.Stream;
import org.apache.arrow.memory.ArrowBuf;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
-import org.apache.arrow.memory.util.hash.ArrowBufHasher;
import org.apache.arrow.vector.BaseLargeVariableWidthVector;
import org.apache.arrow.vector.BaseVariableWidthVector;
import org.apache.arrow.vector.BigIntVector;
@@ -44,7 +43,6 @@ import org.apache.arrow.vector.DateDayVector;
import org.apache.arrow.vector.DateMilliVector;
import org.apache.arrow.vector.DecimalVector;
import org.apache.arrow.vector.DurationVector;
-import org.apache.arrow.vector.ExtensionTypeVector;
import org.apache.arrow.vector.FieldVector;
import org.apache.arrow.vector.FixedSizeBinaryVector;
import org.apache.arrow.vector.Float2Vector;
@@ -74,6 +72,7 @@ import org.apache.arrow.vector.UInt1Vector;
import org.apache.arrow.vector.UInt2Vector;
import org.apache.arrow.vector.UInt4Vector;
import org.apache.arrow.vector.UInt8Vector;
+import org.apache.arrow.vector.UuidVector;
import org.apache.arrow.vector.ValueVector;
import org.apache.arrow.vector.VarBinaryVector;
import org.apache.arrow.vector.VarCharVector;
@@ -92,6 +91,7 @@ import org.apache.arrow.vector.complex.RunEndEncodedVector;
import org.apache.arrow.vector.complex.StructVector;
import org.apache.arrow.vector.complex.UnionVector;
import org.apache.arrow.vector.complex.impl.UnionMapWriter;
+import org.apache.arrow.vector.extension.UuidType;
import org.apache.arrow.vector.holders.IntervalDayHolder;
import org.apache.arrow.vector.holders.NullableLargeVarBinaryHolder;
import org.apache.arrow.vector.holders.NullableUInt4Holder;
@@ -100,7 +100,6 @@ import org.apache.arrow.vector.types.TimeUnit;
import org.apache.arrow.vector.types.Types.MinorType;
import org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.arrow.vector.types.pojo.ArrowType.ExtensionType;
-import org.apache.arrow.vector.types.pojo.ExtensionTypeRegistry;
import org.apache.arrow.vector.types.pojo.Field;
import org.apache.arrow.vector.types.pojo.FieldType;
import org.apache.arrow.vector.types.pojo.Schema;
@@ -810,9 +809,8 @@ public class RoundtripTest {
@Test
public void testExtensionTypeVector() {
- ExtensionTypeRegistry.register(new UuidType());
final Schema schema =
- new Schema(Collections.singletonList(Field.nullable("a", new
UuidType())));
+ new Schema(Collections.singletonList(Field.nullable("a",
UuidType.INSTANCE)));
try (final VectorSchemaRoot root = VectorSchemaRoot.create(schema,
allocator)) {
// Fill with data
UUID u1 = UUID.randomUUID();
@@ -830,13 +828,12 @@ public class RoundtripTest {
assertEquals(root.getSchema(), importedRoot.getSchema());
final Field field = importedRoot.getSchema().getFields().get(0);
- final UuidType expectedType = new UuidType();
assertEquals(
field.getMetadata().get(ExtensionType.EXTENSION_METADATA_KEY_NAME),
- expectedType.extensionName());
+ UuidType.INSTANCE.extensionName());
assertEquals(
field.getMetadata().get(ExtensionType.EXTENSION_METADATA_KEY_METADATA),
- expectedType.serialize());
+ UuidType.INSTANCE.serialize());
final UuidVector deserialized = (UuidVector)
importedRoot.getFieldVectors().get(0);
assertEquals(vector.getValueCount(), deserialized.getValueCount());
@@ -1115,72 +1112,4 @@ public class RoundtripTest {
return new VectorSchemaRoot(fields, vectors);
}
-
- static class UuidType extends ExtensionType {
-
- @Override
- public ArrowType storageType() {
- return new ArrowType.FixedSizeBinary(16);
- }
-
- @Override
- public String extensionName() {
- return "uuid";
- }
-
- @Override
- public boolean extensionEquals(ExtensionType other) {
- return other instanceof UuidType;
- }
-
- @Override
- public ArrowType deserialize(ArrowType storageType, String serializedData)
{
- if (!storageType.equals(storageType())) {
- throw new UnsupportedOperationException(
- "Cannot construct UuidType from underlying type " + storageType);
- }
- return new UuidType();
- }
-
- @Override
- public String serialize() {
- return "";
- }
-
- @Override
- public FieldVector getNewVector(String name, FieldType fieldType,
BufferAllocator allocator) {
- return new UuidVector(name, allocator, new FixedSizeBinaryVector(name,
allocator, 16));
- }
- }
-
- static class UuidVector extends ExtensionTypeVector<FixedSizeBinaryVector> {
-
- public UuidVector(
- String name, BufferAllocator allocator, FixedSizeBinaryVector
underlyingVector) {
- super(name, allocator, underlyingVector);
- }
-
- @Override
- public UUID getObject(int index) {
- final ByteBuffer bb =
ByteBuffer.wrap(getUnderlyingVector().getObject(index));
- return new UUID(bb.getLong(), bb.getLong());
- }
-
- @Override
- public int hashCode(int index) {
- return hashCode(index, null);
- }
-
- @Override
- public int hashCode(int index, ArrowBufHasher hasher) {
- return getUnderlyingVector().hashCode(index, hasher);
- }
-
- public void set(int index, UUID uuid) {
- ByteBuffer bb = ByteBuffer.allocate(16);
- bb.putLong(uuid.getMostSignificantBits());
- bb.putLong(uuid.getLeastSignificantBits());
- getUnderlyingVector().set(index, bb.array());
- }
- }
}
diff --git a/vector/src/main/java/org/apache/arrow/vector/UuidVector.java
b/vector/src/main/java/org/apache/arrow/vector/UuidVector.java
index c662a6e06..e0dadd1c6 100644
--- a/vector/src/main/java/org/apache/arrow/vector/UuidVector.java
+++ b/vector/src/main/java/org/apache/arrow/vector/UuidVector.java
@@ -69,7 +69,7 @@ public class UuidVector extends
ExtensionTypeVector<FixedSizeBinaryVector>
public UuidVector(
String name, BufferAllocator allocator, FixedSizeBinaryVector
underlyingVector) {
super(name, allocator, underlyingVector);
- this.field = new Field(name, FieldType.nullable(new UuidType()), null);
+ this.field = new Field(name, FieldType.nullable(UuidType.INSTANCE), null);
}
/**
@@ -99,7 +99,7 @@ public class UuidVector extends
ExtensionTypeVector<FixedSizeBinaryVector>
*/
public UuidVector(String name, BufferAllocator allocator) {
super(name, allocator, new FixedSizeBinaryVector(name, allocator,
UUID_BYTE_WIDTH));
- this.field = new Field(name, FieldType.nullable(new UuidType()), null);
+ this.field = new Field(name, FieldType.nullable(UuidType.INSTANCE), null);
}
/**
diff --git
a/vector/src/main/java/org/apache/arrow/vector/extension/UuidType.java
b/vector/src/main/java/org/apache/arrow/vector/extension/UuidType.java
index f0f2636c8..cd29f930e 100644
--- a/vector/src/main/java/org/apache/arrow/vector/extension/UuidType.java
+++ b/vector/src/main/java/org/apache/arrow/vector/extension/UuidType.java
@@ -63,6 +63,8 @@ public class UuidType extends ExtensionType {
/** Storage type for UUID: FixedSizeBinary(16). */
public static final ArrowType STORAGE_TYPE = new
ArrowType.FixedSizeBinary(UUID_BYTE_WIDTH);
+ private UuidType() {}
+
static {
ExtensionTypeRegistry.register(INSTANCE);
}
diff --git a/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
b/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
index 41a95a8d1..df3a609f5 100644
--- a/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
+++ b/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
@@ -1208,7 +1208,7 @@ public class TestListVector {
@Test
public void testListVectorWithExtensionType() throws Exception {
- final FieldType type = FieldType.nullable(new UuidType());
+ final FieldType type = FieldType.nullable(UuidType.INSTANCE);
try (final ListVector inVector = new ListVector("list", allocator, type,
null)) {
UnionListWriter writer = inVector.getWriter();
writer.allocate();
@@ -1216,7 +1216,7 @@ public class TestListVector {
UUID u1 = UUID.randomUUID();
UUID u2 = UUID.randomUUID();
writer.startList();
- ExtensionWriter extensionWriter = writer.extension(new UuidType());
+ ExtensionWriter extensionWriter = writer.extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);
extensionWriter.writeExtension(u2);
@@ -1236,7 +1236,7 @@ public class TestListVector {
@Test
public void testListVectorReaderForExtensionType() throws Exception {
- final FieldType type = FieldType.nullable(new UuidType());
+ final FieldType type = FieldType.nullable(UuidType.INSTANCE);
try (final ListVector inVector = new ListVector("list", allocator, type,
null)) {
UnionListWriter writer = inVector.getWriter();
writer.allocate();
@@ -1244,7 +1244,7 @@ public class TestListVector {
UUID u1 = UUID.randomUUID();
UUID u2 = UUID.randomUUID();
writer.startList();
- ExtensionWriter extensionWriter = writer.extension(new UuidType());
+ ExtensionWriter extensionWriter = writer.extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);
extensionWriter.writeExtension(u2);
@@ -1279,7 +1279,7 @@ public class TestListVector {
UUID u1 = UUID.randomUUID();
UUID u2 = UUID.randomUUID();
writer.startList();
- ExtensionWriter extensionWriter = writer.extension(new UuidType());
+ ExtensionWriter extensionWriter = writer.extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);
extensionWriter.writeExtension(u2);
diff --git a/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
b/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
index df8f338f4..d9d2ca50d 100644
--- a/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
+++ b/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
@@ -1284,13 +1284,13 @@ public class TestMapVector {
writer.startMap();
writer.startEntry();
writer.key().bigInt().writeBigInt(0);
- ExtensionWriter extensionWriter = writer.value().extension(new
UuidType());
+ ExtensionWriter extensionWriter =
writer.value().extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);
writer.endEntry();
writer.startEntry();
writer.key().bigInt().writeBigInt(1);
- extensionWriter = writer.value().extension(new UuidType());
+ extensionWriter = writer.value().extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u2);
writer.endEntry();
@@ -1326,13 +1326,13 @@ public class TestMapVector {
writer.startMap();
writer.startEntry();
writer.key().bigInt().writeBigInt(0);
- ExtensionWriter extensionWriter = writer.value().extension(new
UuidType());
+ ExtensionWriter extensionWriter =
writer.value().extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);
writer.endEntry();
writer.startEntry();
writer.key().bigInt().writeBigInt(1);
- extensionWriter = writer.value().extension(new UuidType());
+ extensionWriter = writer.value().extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u2);
writer.endEntry();
diff --git a/vector/src/test/java/org/apache/arrow/vector/TestStructVector.java
b/vector/src/test/java/org/apache/arrow/vector/TestStructVector.java
index b8abfe1ef..21ebeebc8 100644
--- a/vector/src/test/java/org/apache/arrow/vector/TestStructVector.java
+++ b/vector/src/test/java/org/apache/arrow/vector/TestStructVector.java
@@ -341,7 +341,7 @@ public class TestStructVector {
@Test
public void testStructVectorWithExtensionTypes() {
- UuidType uuidType = new UuidType();
+ UuidType uuidType = UuidType.INSTANCE;
Field uuidField = new Field("struct_child", FieldType.nullable(uuidType),
null);
Field structField =
new Field("struct", FieldType.nullable(new ArrowType.Struct()),
List.of(uuidField));
@@ -353,7 +353,7 @@ public class TestStructVector {
@Test
public void testStructVectorTransferPairWithExtensionType() {
- UuidType uuidType = new UuidType();
+ UuidType uuidType = UuidType.INSTANCE;
Field uuidField = new Field("uuid_child", FieldType.nullable(uuidType),
null);
Field structField =
new Field("struct", FieldType.nullable(new ArrowType.Struct()),
List.of(uuidField));
diff --git a/vector/src/test/java/org/apache/arrow/vector/TestUuidType.java
b/vector/src/test/java/org/apache/arrow/vector/TestUuidType.java
index 9f7c65b82..acf9dd686 100644
--- a/vector/src/test/java/org/apache/arrow/vector/TestUuidType.java
+++ b/vector/src/test/java/org/apache/arrow/vector/TestUuidType.java
@@ -75,21 +75,21 @@ class TestUuidType {
@Test
void testStorageType() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
assertEquals(UuidType.STORAGE_TYPE, type.storageType());
assertInstanceOf(ArrowType.FixedSizeBinary.class, type.storageType());
}
@Test
void testExtensionName() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
assertEquals("arrow.uuid", type.extensionName());
}
@Test
void testExtensionEquals() {
- UuidType type1 = new UuidType();
- UuidType type2 = new UuidType();
+ UuidType type1 = UuidType.INSTANCE;
+ UuidType type2 = UuidType.INSTANCE;
UuidType type3 = UuidType.INSTANCE;
assertTrue(type1.extensionEquals(type2));
@@ -99,20 +99,20 @@ class TestUuidType {
@Test
void testIsComplex() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
assertFalse(type.isComplex());
}
@Test
void testSerialize() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
String serialized = type.serialize();
assertEquals("", serialized);
}
@Test
void testDeserializeValid() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
ArrowType storageType = new
ArrowType.FixedSizeBinary(UuidType.UUID_BYTE_WIDTH);
ArrowType deserialized = assertDoesNotThrow(() ->
type.deserialize(storageType, ""));
@@ -122,7 +122,7 @@ class TestUuidType {
@Test
void testDeserializeInvalidStorageType() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
ArrowType wrongStorageType = new ArrowType.FixedSizeBinary(32);
assertThrows(UnsupportedOperationException.class, () ->
type.deserialize(wrongStorageType, ""));
@@ -130,7 +130,7 @@ class TestUuidType {
@Test
void testGetNewVector() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
try (FieldVector vector =
type.getNewVector("uuid_field", FieldType.nullable(type), allocator)) {
assertInstanceOf(UuidVector.class, vector);
@@ -141,7 +141,7 @@ class TestUuidType {
@Test
void testVectorOperations() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
try (FieldVector vector =
type.getNewVector("uuid_field", FieldType.nullable(type), allocator)) {
UuidVector uuidVector = (UuidVector) vector;
@@ -218,7 +218,7 @@ class TestUuidType {
@Test
void testVectorByteArrayOperations() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
try (FieldVector vector =
type.getNewVector("uuid_field", FieldType.nullable(type), allocator)) {
UuidVector uuidVector = (UuidVector) vector;
@@ -240,7 +240,7 @@ class TestUuidType {
@Test
void testGetNewVectorWithCustomFieldType() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
FieldType fieldType = new FieldType(false, type, null);
try (FieldVector vector = type.getNewVector("non_nullable_uuid",
fieldType, allocator)) {
@@ -262,7 +262,7 @@ class TestUuidType {
@Test
void testUnderlyingVector() {
- UuidType type = new UuidType();
+ UuidType type = UuidType.INSTANCE;
try (FieldVector vector =
type.getNewVector("uuid_field", FieldType.nullable(type), allocator)) {
UuidVector uuidVector = (UuidVector) vector;
diff --git
a/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestComplexCopier.java
b/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestComplexCopier.java
index 493a4b26a..73c1cd3b7 100644
---
a/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestComplexCopier.java
+++
b/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestComplexCopier.java
@@ -860,7 +860,7 @@ public class TestComplexCopier {
for (int i = 0; i < COUNT; i++) {
listWriter.setPosition(i);
listWriter.startList();
- ExtensionWriter extensionWriter = listWriter.extension(new UuidType());
+ ExtensionWriter extensionWriter =
listWriter.extension(UuidType.INSTANCE);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(UUID.randomUUID());
extensionWriter.writeExtension(UUID.randomUUID());
@@ -896,10 +896,10 @@ public class TestComplexCopier {
mapWriter.setPosition(i);
mapWriter.startMap();
mapWriter.startEntry();
- ExtensionWriter extensionKeyWriter = mapWriter.key().extension(new
UuidType());
+ ExtensionWriter extensionKeyWriter =
mapWriter.key().extension(UuidType.INSTANCE);
extensionKeyWriter.addExtensionTypeWriterFactory(new
UuidWriterFactory());
extensionKeyWriter.writeExtension(UUID.randomUUID());
- ExtensionWriter extensionValueWriter = mapWriter.value().extension(new
UuidType());
+ ExtensionWriter extensionValueWriter =
mapWriter.value().extension(UuidType.INSTANCE);
extensionValueWriter.addExtensionTypeWriterFactory(new
UuidWriterFactory());
extensionValueWriter.writeExtension(UUID.randomUUID());
mapWriter.endEntry();
@@ -934,10 +934,10 @@ public class TestComplexCopier {
for (int i = 0; i < COUNT; i++) {
structWriter.setPosition(i);
structWriter.start();
- ExtensionWriter extensionWriter1 =
structWriter.extension("timestamp1", new UuidType());
+ ExtensionWriter extensionWriter1 =
structWriter.extension("timestamp1", UuidType.INSTANCE);
extensionWriter1.addExtensionTypeWriterFactory(new
UuidWriterFactory());
extensionWriter1.writeExtension(UUID.randomUUID());
- ExtensionWriter extensionWriter2 =
structWriter.extension("timestamp2", new UuidType());
+ ExtensionWriter extensionWriter2 =
structWriter.extension("timestamp2", UuidType.INSTANCE);
extensionWriter2.addExtensionTypeWriterFactory(new
UuidWriterFactory());
extensionWriter2.writeExtension(UUID.randomUUID());
structWriter.end();
diff --git
a/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
b/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
index a4594024f..c71717a02 100644
---
a/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
+++
b/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
@@ -785,7 +785,7 @@ public class TestPromotableWriter {
try (final NonNullableStructVector container =
NonNullableStructVector.empty(EMPTY_SCHEMA_PATH, allocator);
final UuidVector v =
- container.addOrGet("uuid", FieldType.nullable(new UuidType()),
UuidVector.class);
+ container.addOrGet("uuid", FieldType.nullable(UuidType.INSTANCE),
UuidVector.class);
final PromotableWriter writer = new PromotableWriter(v, container)) {
UUID u1 = UUID.randomUUID();
UUID u2 = UUID.randomUUID();
@@ -810,7 +810,8 @@ public class TestPromotableWriter {
public void testExtensionTypeForList() throws Exception {
try (final ListVector container = ListVector.empty(EMPTY_SCHEMA_PATH,
allocator);
final UuidVector v =
- (UuidVector) container.addOrGetVector(FieldType.nullable(new
UuidType())).getVector();
+ (UuidVector)
+
container.addOrGetVector(FieldType.nullable(UuidType.INSTANCE)).getVector();
final PromotableWriter writer = new PromotableWriter(v, container)) {
UUID u1 = UUID.randomUUID();
UUID u2 = UUID.randomUUID();
diff --git
a/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
b/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
index 871a3cc46..3a8f3f8e6 100644
---
a/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
+++
b/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
@@ -2510,7 +2510,7 @@ public class TestComplexWriter {
StructWriter rootWriter = writer.rootAsStruct();
{
- ExtensionWriter extensionWriter = rootWriter.extension("uuid1", new
UuidType());
+ ExtensionWriter extensionWriter = rootWriter.extension("uuid1",
UuidType.INSTANCE);
extensionWriter.setPosition(0);
extensionWriter.addExtensionTypeWriterFactory(new UuidWriterFactory());
extensionWriter.writeExtension(u1);