Stop Conversations force closing over sqlite errors due to long messages
This commit is contained in:
		
							parent
							
								
									8a1ebf2bbe
								
							
						
					
					
						commit
						2a34ece571
					
				| @ -154,6 +154,8 @@ public class Message extends AbstractEntity { | |||||||
| 			} | 			} | ||||||
| 		} catch (InvalidJidException e) { | 		} catch (InvalidJidException e) { | ||||||
| 			jid = null; | 			jid = null; | ||||||
|  | 		} catch (IllegalStateException e) { | ||||||
|  | 			return null; // message too long? | ||||||
| 		} | 		} | ||||||
| 		Jid trueCounterpart; | 		Jid trueCounterpart; | ||||||
| 		try { | 		try { | ||||||
|  | |||||||
| @ -636,8 +636,10 @@ public class DatabaseBackend extends SQLiteOpenHelper { | |||||||
| 			cursor.moveToLast(); | 			cursor.moveToLast(); | ||||||
| 			do { | 			do { | ||||||
| 				Message message = Message.fromCursor(cursor); | 				Message message = Message.fromCursor(cursor); | ||||||
| 				message.setConversation(conversation); | 				if (message != null) { | ||||||
| 				list.add(message); | 					message.setConversation(conversation); | ||||||
|  | 					list.add(message); | ||||||
|  | 				} | ||||||
| 			} while (cursor.moveToPrevious()); | 			} while (cursor.moveToPrevious()); | ||||||
| 		} | 		} | ||||||
| 		cursor.close(); | 		cursor.close(); | ||||||
|  | |||||||
| @ -84,6 +84,8 @@ public class ExportLogsService extends Service { | |||||||
| 		BufferedWriter bw = null; | 		BufferedWriter bw = null; | ||||||
| 		try { | 		try { | ||||||
| 			for (Message message : mDatabaseBackend.getMessagesIterable(conversation)) { | 			for (Message message : mDatabaseBackend.getMessagesIterable(conversation)) { | ||||||
|  | 				if (message == null) | ||||||
|  | 					continue; | ||||||
| 				if (message.getType() == Message.TYPE_TEXT || message.hasFileOnRemoteHost()) { | 				if (message.getType() == Message.TYPE_TEXT || message.hasFileOnRemoteHost()) { | ||||||
| 					String date = simpleDateFormat.format(new Date(message.getTimeSent())); | 					String date = simpleDateFormat.format(new Date(message.getTimeSent())); | ||||||
| 					if (bw == null) { | 					if (bw == null) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 moparisthebest
						moparisthebest