make sure to properly stop tagwriter

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/xml/TagWriter.java       | 7 +++++
src/main/java/eu/siacs/conversations/xml/XmlReader.java       | 2 
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 4 ++
3 files changed, 11 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/xml/XmlReader.java 🔗

@@ -82,7 +82,7 @@ public class XmlReader {
 			}
 
 		} catch (Throwable throwable) {
-			throw new IOException("xml parser mishandled "+throwable.getClass().getName(), throwable);
+			throw new IOException("xml parser mishandled "+throwable.getClass().getSimpleName()+"("+throwable.getMessage()+")", throwable);
 		} finally {
 			if (wakeLock.isHeld()) {
 				try {

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -1356,6 +1356,9 @@ public class XmppConnection implements Runnable {
 	}
 
 	private void forceCloseSocket() {
+		if (tagWriter != null) {
+			tagWriter.forceClose();
+		}
 		if (socket != null) {
 			try {
 				socket.close();
@@ -1375,7 +1378,6 @@ public class XmppConnection implements Runnable {
 		interrupt();
 		Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": disconnecting force="+Boolean.valueOf(force));
 		if (force) {
-			tagWriter.forceClose();
 			forceCloseSocket();
 		} else {
 			if (tagWriter.isActive()) {