diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java index 07785a948..f3e6636e5 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java @@ -5,13 +5,16 @@ import com.codahale.metrics.Meter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.SharedMetricRegistries; import com.codahale.metrics.Timer; +import org.jdbi.v3.core.argument.SetObjectArgumentFactory; import org.jdbi.v3.core.statement.PreparedBatch; import org.whispersystems.textsecuregcm.entities.MessageProtos.Envelope; import org.whispersystems.textsecuregcm.entities.OutgoingMessageEntity; import org.whispersystems.textsecuregcm.storage.mappers.OutgoingMessageEntityRowMapper; import org.whispersystems.textsecuregcm.util.Constants; +import java.sql.Types; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.UUID; @@ -49,9 +52,16 @@ public class Messages { private final FaultTolerantDatabase database; + private static class UUIDArgumentFactory extends SetObjectArgumentFactory { + public UUIDArgumentFactory() { + super(Map.of(UUID.class, Types.OTHER)); + } + } + public Messages(FaultTolerantDatabase database) { this.database = database; this.database.getDatabase().registerRowMapper(new OutgoingMessageEntityRowMapper()); + this.database.getDatabase().registerArgument(new UUIDArgumentFactory()); } public void store(final List messages, final String destination, final long destinationDevice) {