Missed a method when replacing private messages with private groups.

Unit tests would've caught this.
This commit is contained in:
akwizgran
2013-12-19 22:28:23 +00:00
parent caec26e9cd
commit 6de0c334c7

View File

@@ -1673,25 +1673,7 @@ abstract class JdbcDatabase implements Database<Connection> {
PreparedStatement ps = null; PreparedStatement ps = null;
ResultSet rs = null; ResultSet rs = null;
try { try {
// Do we have any sendable private messages?
String sql = "SELECT m.messageId FROM messages AS m" String sql = "SELECT m.messageId FROM messages AS m"
+ " JOIN statuses AS s"
+ " ON m.messageId = s.messageId"
+ " WHERE m.contactId = ? AND seen = FALSE AND expiry < ?"
+ " ORDER BY timestamp DESC LIMIT ?";
ps = txn.prepareStatement(sql);
ps.setInt(1, c.getInt());
ps.setLong(2, now);
ps.setInt(3, maxMessages);
rs = ps.executeQuery();
List<MessageId> ids = new ArrayList<MessageId>();
while(rs.next()) ids.add(new MessageId(rs.getBytes(1)));
rs.close();
ps.close();
if(ids.size() == maxMessages)
return Collections.unmodifiableList(ids);
// Do we have any sendable group messages?
sql = "SELECT m.messageId FROM messages AS m"
+ " JOIN contactGroups AS cg" + " JOIN contactGroups AS cg"
+ " ON m.groupId = cg.groupId" + " ON m.groupId = cg.groupId"
+ " JOIN groupVisibilities AS gv" + " JOIN groupVisibilities AS gv"
@@ -1709,8 +1691,9 @@ abstract class JdbcDatabase implements Database<Connection> {
ps = txn.prepareStatement(sql); ps = txn.prepareStatement(sql);
ps.setInt(1, c.getInt()); ps.setInt(1, c.getInt());
ps.setLong(2, now); ps.setLong(2, now);
ps.setInt(3, maxMessages - ids.size()); ps.setInt(3, maxMessages);
rs = ps.executeQuery(); rs = ps.executeQuery();
List<MessageId> ids = new ArrayList<MessageId>();
while(rs.next()) ids.add(new MessageId(rs.getBytes(1))); while(rs.next()) ids.add(new MessageId(rs.getBytes(1)));
rs.close(); rs.close();
ps.close(); ps.close();