Fix concurrent use of QueryBuilder in BlacklistDataSource

This commit is contained in:
xynngh 2020-10-24 02:21:39 +04:00
parent 319f144972
commit 943cdf2268
1 changed files with 2 additions and 11 deletions

View File

@ -47,8 +47,6 @@ public class BlacklistDataSource extends PositionalDataSource<BlacklistItem> {
private final BlacklistDao blacklistDao; private final BlacklistDao blacklistDao;
private QueryBuilder<BlacklistItem> queryBuilder;
public BlacklistDataSource(BlacklistDao blacklistDao) { public BlacklistDataSource(BlacklistDao blacklistDao) {
this.blacklistDao = blacklistDao; this.blacklistDao = blacklistDao;
} }
@ -60,7 +58,7 @@ public class BlacklistDataSource extends PositionalDataSource<BlacklistItem> {
* @return an iterable containing ids of all items this DS would load * @return an iterable containing ids of all items this DS would load
*/ */
public Iterable<Long> getAllIds() { public Iterable<Long> getAllIds() {
Iterator<BlacklistItem> iterator = newQueryBuilder().listIterator(); Iterator<BlacklistItem> iterator = getQueryBuilder().listIterator();
return () -> new Iterator<Long>() { return () -> new Iterator<Long>() {
@Override @Override
public boolean hasNext() { public boolean hasNext() {
@ -130,17 +128,10 @@ public class BlacklistDataSource extends PositionalDataSource<BlacklistItem> {
} }
private long countAll() { private long countAll() {
return newQueryBuilder().count(); return getQueryBuilder().count();
} }
private QueryBuilder<BlacklistItem> getQueryBuilder() { private QueryBuilder<BlacklistItem> getQueryBuilder() {
if (queryBuilder == null) {
queryBuilder = newQueryBuilder();
}
return queryBuilder;
}
private QueryBuilder<BlacklistItem> newQueryBuilder() {
return blacklistDao.getDefaultQueryBuilder(); return blacklistDao.getDefaultQueryBuilder();
} }