sync around Conversation.getLatestMessage()

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java | 16 +-
1 file changed, 9 insertions(+), 7 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -470,13 +470,15 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
 	}
 
 	public Message getLatestMessage() {
-		if (this.messages.size() == 0) {
-			Message message = new Message(this, "", Message.ENCRYPTION_NONE);
-			message.setType(Message.TYPE_STATUS);
-			message.setTime(Math.max(getCreated(),getLastClearHistory().getTimestamp()));
-			return message;
-		} else {
-			return this.messages.get(this.messages.size() - 1);
+		synchronized (this.messages) {
+			if (this.messages.size() == 0) {
+				Message message = new Message(this, "", Message.ENCRYPTION_NONE);
+				message.setType(Message.TYPE_STATUS);
+				message.setTime(Math.max(getCreated(), getLastClearHistory().getTimestamp()));
+				return message;
+			} else {
+				return this.messages.get(this.messages.size() - 1);
+			}
 		}
 	}