Merge pull request #2270 from moparisthebest/master

Daniel Gultsch created

Stop Conversations force closing over sqlite errors due to long messages

Change summary

src/main/java/eu/siacs/conversations/entities/Message.java            | 2 
src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 6 
src/main/java/eu/siacs/conversations/services/ExportLogsService.java  | 2 
3 files changed, 8 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -640,8 +640,10 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 			cursor.moveToLast();
 			do {
 				Message message = Message.fromCursor(cursor);
-				message.setConversation(conversation);
-				list.add(message);
+				if (message != null) {
+					message.setConversation(conversation);
+					list.add(message);
+				}
 			} while (cursor.moveToPrevious());
 		}
 		cursor.close();

src/main/java/eu/siacs/conversations/services/ExportLogsService.java 🔗

@@ -84,6 +84,8 @@ public class ExportLogsService extends Service {
 		BufferedWriter bw = null;
 		try {
 			for (Message message : mDatabaseBackend.getMessagesIterable(conversation)) {
+				if (message == null)
+					continue;
 				if (message.getType() == Message.TYPE_TEXT || message.hasFileOnRemoteHost()) {
 					String date = simpleDateFormat.format(new Date(message.getTimeSent()));
 					if (bw == null) {