Cleaned up connection close operation.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@1829 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Matt Tucker 2003-01-27 15:56:21 +00:00 committed by mtucker
parent 668ab89ece
commit 5a1f449f03
3 changed files with 13 additions and 5 deletions

View File

@ -263,10 +263,10 @@ class PacketReader {
} while (eventType != parser.END_DOCUMENT && !done);
}
catch (Exception e) {
// An exception occurred while parsing. Print the error an close the
// connection.
e.printStackTrace();
if (!done) {
// An exception occurred while parsing. Print the error an close the
// connection.
e.printStackTrace();
connection.close();
}
}

View File

@ -148,6 +148,7 @@ class PacketWriter {
// stream.append("xmlns:sasl=\"http://www.iana.org/assignments/sasl-mechanisms\" ");
writer.write(stream.toString());
writer.flush();
stream = null;
// Write out packets from the queue.
while (!done) {
Packet packet = nextPacket();
@ -168,8 +169,10 @@ class PacketWriter {
}
}
catch (IOException ioe){
ioe.printStackTrace();
connection.close();
if (!done) {
ioe.printStackTrace();
connection.close();
}
}
}
}

View File

@ -323,6 +323,11 @@ public class XMPPConnection {
packetWriter.sendPacket(new Presence(Presence.Type.UNAVAILABLE));
packetWriter.shutdown();
packetReader.shutdown();
// Wait 100 ms for processes to clean-up, then shutdown.
try {
Thread.sleep(100);
}
catch (Exception e) { }
try {
socket.close();
}