diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java index 0e6ad74892..7a06d6741a 100644 --- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java @@ -7,17 +7,18 @@ import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; -import java.io.File; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; import mage.cards.repository.RepositoryUtil; import mage.game.result.ResultProtos; import mage.server.rating.GlickoRating; import mage.server.rating.GlickoRatingSystem; import org.apache.log4j.Logger; +import java.io.File; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + public enum UserStatsRepository { instance; @@ -68,7 +69,7 @@ public enum UserStatsRepository { public UserStats getUser(String userName) { try { QueryBuilder qb = dao.queryBuilder(); - qb.where().eq("userName", userName); + qb.limit(1L).where().eq("userName", userName); List users = dao.query(qb.prepare()); if (users.size() == 1) { return users.get(0); @@ -92,7 +93,7 @@ public enum UserStatsRepository { public long getLatestEndTimeMs() { try { QueryBuilder qb = dao.queryBuilder(); - qb.orderBy("endTimeMs", false).limit(1); + qb.orderBy("endTimeMs", false).limit(1L); List users = dao.query(qb.prepare()); if (users.size() == 1) { return users.get(0).getEndTimeMs(); @@ -106,7 +107,7 @@ public enum UserStatsRepository { // updateUserStats reads tables finished after the last DB update and reflects it to the DB. // It returns the list of user names that are upated. public List updateUserStats() { - HashSet updatedUsers = new HashSet(); + HashSet updatedUsers = new HashSet<>(); // Lock the DB so that no other updateUserStats runs at the same time. synchronized(this) { long latestEndTimeMs = this.getLatestEndTimeMs(); diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 47f1503e4c..4c58b70247 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -37,20 +37,17 @@ import com.j256.ormlite.stmt.Where; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; -import java.io.File; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.concurrent.Callable; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SetType; import mage.util.RandomUtil; import org.apache.log4j.Logger; +import java.io.File; +import java.sql.SQLException; +import java.util.*; +import java.util.concurrent.Callable; + /** * * @author North @@ -65,12 +62,10 @@ public enum CardRepository { private static final long CARD_DB_VERSION = 48; // raise this if new cards were added to the server private static final long CARD_CONTENT_VERSION = 65; - + private final TreeSet landTypes = new TreeSet(); private Dao cardDao; private Set classNames; - private final TreeSet landTypes = new TreeSet(); - CardRepository() { File file = new File("db"); if (!file.exists()) { @@ -315,7 +310,7 @@ public enum CardRepository { public CardInfo findCard(String setCode, String cardNumber) { try { QueryBuilder queryBuilder = cardDao.queryBuilder(); - queryBuilder.where().eq("setCode", new SelectArg(setCode)).and().eq("cardNumber", cardNumber).and().eq("nightCard", false); + queryBuilder.limit(1L).where().eq("setCode", new SelectArg(setCode)).and().eq("cardNumber", cardNumber).and().eq("nightCard", false); List result = cardDao.query(queryBuilder.prepare()); if (!result.isEmpty()) { return result.get(0); diff --git a/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java b/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java index cf4f72c7b0..b2ff360a11 100644 --- a/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java +++ b/Mage/src/main/java/mage/cards/repository/ExpansionRepository.java @@ -7,12 +7,13 @@ import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.TableUtils; +import org.apache.log4j.Logger; + import java.io.File; import java.sql.SQLException; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import org.apache.log4j.Logger; /** * @@ -112,7 +113,7 @@ public enum ExpansionRepository { ExpansionInfo set = null; try { QueryBuilder qb = expansionDao.queryBuilder(); - qb.where().eq("code", new SelectArg(setCode)); + qb.limit(1L).where().eq("code", new SelectArg(setCode)); List expansions = expansionDao.query(qb.prepare()); if (expansions.size() > 0) { set = expansions.get(0); @@ -126,7 +127,7 @@ public enum ExpansionRepository { ExpansionInfo set = null; try { QueryBuilder qb = expansionDao.queryBuilder(); - qb.where().eq("name", new SelectArg(setName)); + qb.limit(1L).where().eq("name", new SelectArg(setName)); List expansions = expansionDao.query(qb.prepare()); if (expansions.size() > 0) { set = expansions.get(0);