src/eu/siacs/conversations/xml/TagWriter.java 🔗
@@ -75,4 +75,8 @@ public class TagWriter {
public boolean finished() {
return (this.writeQueue.size() == 0);
}
+
+ public boolean isActive() {
+ return outputStream != null;
+ }
}
Daniel Gultsch created
src/eu/siacs/conversations/xml/TagWriter.java | 4 ++++
src/eu/siacs/conversations/xmpp/XmppConnection.java | 13 ++++++++-----
2 files changed, 12 insertions(+), 5 deletions(-)
@@ -75,4 +75,8 @@ public class TagWriter {
public boolean finished() {
return (this.writeQueue.size() == 0);
}
+
+ public boolean isActive() {
+ return outputStream != null;
+ }
}
@@ -678,6 +678,7 @@ public class XmppConnection implements Runnable {
public void sendIqPacket(IqPacket packet, OnIqPacketReceived callback) {
String id = nextRandomId();
packet.setAttribute("id", id);
+ packet.setFrom(account.getFullJid());
this.sendPacket(packet, callback);
}
@@ -761,12 +762,14 @@ public class XmppConnection implements Runnable {
socket.close();
return;
}
- tagWriter.finish();
- while(!tagWriter.finished()) {
- //Log.d(LOGTAG,"not yet finished");
- Thread.sleep(100);
+ if (tagWriter.isActive()) {
+ tagWriter.finish();
+ while(!tagWriter.finished()) {
+ //Log.d(LOGTAG,"not yet finished");
+ Thread.sleep(100);
+ }
+ tagWriter.writeTag(Tag.end("stream:stream"));
}
- tagWriter.writeTag(Tag.end("stream:stream"));
} catch (IOException e) {
Log.d(LOGTAG,"io exception during disconnect");
} catch (InterruptedException e) {