Filter null from db result

This commit is contained in:
AsamK 2023-04-05 11:22:43 +02:00
parent 780c69d804
commit 24a8c528d0
2 changed files with 10 additions and 3 deletions

View file

@ -15,6 +15,7 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Objects;
import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.subjects.PublishSubject; import io.reactivex.rxjava3.subjects.PublishSubject;
@ -153,7 +154,9 @@ public class IdentityKeyStore {
""" """
).formatted(TABLE_IDENTITY); ).formatted(TABLE_IDENTITY);
try (final var statement = connection.prepareStatement(sql)) { try (final var statement = connection.prepareStatement(sql)) {
return Utils.executeQueryForStream(statement, this::getIdentityInfoFromResultSet).toList(); return Utils.executeQueryForStream(statement, this::getIdentityInfoFromResultSet)
.filter(Objects::nonNull)
.toList();
} }
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException("Failed read from identity store", e); throw new RuntimeException("Failed read from identity store", e);

View file

@ -247,7 +247,9 @@ public class SessionStore implements SignalServiceSessionStore {
try (final var statement = connection.prepareStatement(sql)) { try (final var statement = connection.prepareStatement(sql)) {
statement.setInt(1, accountIdType); statement.setInt(1, accountIdType);
records = Utils.executeQueryForStream(statement, records = Utils.executeQueryForStream(statement,
res -> new Pair<>(getKeyFromResultSet(res), getSessionRecordFromResultSet(res))).toList(); res -> new Pair<>(getKeyFromResultSet(res), getSessionRecordFromResultSet(res)))
.filter(Objects::nonNull)
.toList();
} }
for (final var record : records) { for (final var record : records) {
record.second().archiveCurrentState(); record.second().archiveCurrentState();
@ -274,7 +276,9 @@ public class SessionStore implements SignalServiceSessionStore {
statement.setInt(1, accountIdType); statement.setInt(1, accountIdType);
statement.setBytes(2, serviceId.toByteArray()); statement.setBytes(2, serviceId.toByteArray());
records = Utils.executeQueryForStream(statement, records = Utils.executeQueryForStream(statement,
res -> new Pair<>(getKeyFromResultSet(res), getSessionRecordFromResultSet(res))).toList(); res -> new Pair<>(getKeyFromResultSet(res), getSessionRecordFromResultSet(res)))
.filter(Objects::nonNull)
.toList();
} }
for (final var record : records) { for (final var record : records) {
record.second().archiveCurrentState(); record.second().archiveCurrentState();