Reading the stream metadata for a soft deleted stream fails with a "ClassCastException".
It seems that field "StreamMetadata.truncateBefore" should be "Long" and not "Integer".
Caused by: java.lang.ClassCastException: class java.lang.Long cannot be cast to class java.lang.Integer (java.lang.Long and java.lang.Integer are in module java.base of loader 'bootstrap')
at com.eventstore.dbclient.StreamMetadata.deserialize(StreamMetadata.java:148)
at com.eventstore.dbclient.EventStoreDBClient.lambda$getStreamMetadata$1(EventStoreDBClient.java:187)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
Example program:
public static void main(String[] args) throws InterruptedException, ExecutionException {
EventStoreDBClientSettings settings = EventStoreDBConnectionString.parseOrThrow("esdb://localhost:2113?tls=false");
EventStoreDBClient client = EventStoreDBClient.create(settings);
String streamId = "MyStream";
// Create stream by appending something to it
List<EventData> events = new ArrayList<>();
events.add(EventData.builderAsBinary(UUID.randomUUID(), "baz", "dummy content".getBytes()).build());
client.appendToStream(streamId, AppendToStreamOptions.get().expectedRevision(ExpectedRevision.any()), events.iterator()).join();
// Delete
client.deleteStream(streamId, DeleteStreamOptions.get().expectedRevision(ExpectedRevision.any())).join();
// Get status
client.getStreamMetadata(streamId).get();
}
Reading the stream metadata for a soft deleted stream fails with a "ClassCastException".
It seems that field "StreamMetadata.truncateBefore" should be "Long" and not "Integer".
Example program: