From e256a1d149eb64aa7831295ec0c35ec813a74b9a Mon Sep 17 00:00:00 2001 From: Matt Tucker Date: Wed, 16 Jul 2003 02:49:43 +0000 Subject: [PATCH] Better connection closing notification logic. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@1987 b35dd754-fafc-0310-a699-88a17e54d16e --- source/org/jivesoftware/smack/PacketReader.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/source/org/jivesoftware/smack/PacketReader.java b/source/org/jivesoftware/smack/PacketReader.java index fb301df69..c197380b2 100644 --- a/source/org/jivesoftware/smack/PacketReader.java +++ b/source/org/jivesoftware/smack/PacketReader.java @@ -201,6 +201,13 @@ class PacketReader { */ public void shutdown() { done = true; + // Notify connection listeners of the connection closing. + synchronized (connectionListeners) { + for (Iterator i=connectionListeners.iterator(); i.hasNext(); ) { + ConnectionListener listener = (ConnectionListener)i.next(); + listener.connectionClosed(); + } + } } /** @@ -271,18 +278,12 @@ class PacketReader { } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("stream")) { + // Close the connection. connection.close(); - done = true; } } eventType = parser.next(); - } while (eventType != XmlPullParser.END_DOCUMENT && !done); - synchronized (connectionListeners) { - for (Iterator i=connectionListeners.iterator(); i.hasNext(); ) { - ConnectionListener listener = (ConnectionListener)i.next(); - listener.connectionClosed(); - } - } + } while (!done && eventType != XmlPullParser.END_DOCUMENT); } catch (Exception e) { if (!done) {