From 1f3ab16aadda139af32e7cd472b27c4ef4ab4597 Mon Sep 17 00:00:00 2001 From: Alex Wenckus Date: Mon, 20 Nov 2006 23:09:11 +0000 Subject: [PATCH] Small tweaks. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@6183 b35dd754-fafc-0310-a699-88a17e54d16e --- .../smackx/muc/MultiUserChat.java | 31 +++++++++++++------ .../smackx/packet/DiscoverInfo.java | 12 +++---- .../smackx/packet/DiscoverItems.java | 10 +++--- .../provider/DiscoverItemsProvider.java | 8 ++--- 4 files changed, 35 insertions(+), 26 deletions(-) diff --git a/source/org/jivesoftware/smackx/muc/MultiUserChat.java b/source/org/jivesoftware/smackx/muc/MultiUserChat.java index b0de9d19b..7d0667a65 100644 --- a/source/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/source/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -445,16 +445,24 @@ public class MultiUserChat { // Wait for a presence packet back from the server. PacketFilter responseFilter = - new AndFilter( - new FromMatchesFilter(room + "/" + nickname), - new PacketTypeFilter(Presence.class)); - PacketCollector response = connection.createPacketCollector(responseFilter); - // Send join packet. - connection.sendPacket(joinPresence); - // Wait up to a certain number of seconds for a reply. - Presence presence = (Presence) response.nextResult(timeout); - // Stop queuing results - response.cancel(); + new AndFilter( + new FromMatchesFilter(room + "/" + nickname), + new PacketTypeFilter(Presence.class)); + PacketCollector response = null; + Presence presence; + try { + response = connection.createPacketCollector(responseFilter); + // Send join packet. + connection.sendPacket(joinPresence); + // Wait up to a certain number of seconds for a reply. + presence = (Presence) response.nextResult(timeout); + } + finally { + // Stop queuing results + if (response != null) { + response.cancel(); + } + } if (presence == null) { throw new XMPPException("No response from server."); @@ -795,6 +803,9 @@ public class MultiUserChat { /** * Fires invitation rejection listeners. + * + * @param invitee the user being invited. + * @param reason the reason for the rejection */ private void fireInvitationRejectionListeners(String invitee, String reason) { InvitationRejectionListener[] listeners; diff --git a/source/org/jivesoftware/smackx/packet/DiscoverInfo.java b/source/org/jivesoftware/smackx/packet/DiscoverInfo.java index 2f031bf6c..eca4b09ae 100644 --- a/source/org/jivesoftware/smackx/packet/DiscoverInfo.java +++ b/source/org/jivesoftware/smackx/packet/DiscoverInfo.java @@ -22,10 +22,10 @@ package org.jivesoftware.smackx.packet; import org.jivesoftware.smack.packet.IQ; -import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; /** * A DiscoverInfo IQ packet, which is used by XMPP clients to request and receive information @@ -38,8 +38,8 @@ import java.util.List; */ public class DiscoverInfo extends IQ { - private final List features = new ArrayList(); - private final List identities = new ArrayList(); + private final List features = new CopyOnWriteArrayList(); + private final List identities = new CopyOnWriteArrayList(); private String node; /** @@ -48,7 +48,7 @@ public class DiscoverInfo extends IQ { * @param feature the discovered feature */ public void addFeature(String feature) { - addFeature(new DiscoverInfo.Feature(feature)); + addFeature(new Feature(feature)); } private void addFeature(Feature feature) { @@ -64,7 +64,7 @@ public class DiscoverInfo extends IQ { */ Iterator getFeatures() { synchronized (features) { - return Collections.unmodifiableList(new ArrayList(features)).iterator(); + return Collections.unmodifiableList(features).iterator(); } } @@ -86,7 +86,7 @@ public class DiscoverInfo extends IQ { */ public Iterator getIdentities() { synchronized (identities) { - return Collections.unmodifiableList(new ArrayList(identities)).iterator(); + return Collections.unmodifiableList(identities).iterator(); } } diff --git a/source/org/jivesoftware/smackx/packet/DiscoverItems.java b/source/org/jivesoftware/smackx/packet/DiscoverItems.java index 372db0223..a4cd02e56 100644 --- a/source/org/jivesoftware/smackx/packet/DiscoverItems.java +++ b/source/org/jivesoftware/smackx/packet/DiscoverItems.java @@ -22,10 +22,10 @@ package org.jivesoftware.smackx.packet; import org.jivesoftware.smack.packet.IQ; -import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; /** * A DiscoverItems IQ packet, which is used by XMPP clients to request and receive items @@ -38,7 +38,7 @@ import java.util.List; */ public class DiscoverItems extends IQ { - private final List items = new ArrayList(); + private final List items = new CopyOnWriteArrayList(); private String node; /** @@ -59,8 +59,7 @@ public class DiscoverItems extends IQ { */ public Iterator getItems() { synchronized (items) { - return Collections.unmodifiableList(new ArrayList(items)) - .iterator(); + return Collections.unmodifiableList(items).iterator(); } } @@ -100,8 +99,7 @@ public class DiscoverItems extends IQ { } buf.append(">"); synchronized (items) { - for (int i = 0; i < items.size(); i++) { - Item item = items.get(i); + for (Item item : items) { buf.append(item.toXML()); } } diff --git a/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java b/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java index 34aae227b..a42822d5e 100644 --- a/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java +++ b/source/org/jivesoftware/smackx/provider/DiscoverItemsProvider.java @@ -35,7 +35,7 @@ public class DiscoverItemsProvider implements IQProvider { public IQ parseIQ(XmlPullParser parser) throws Exception { DiscoverItems discoverItems = new DiscoverItems(); boolean done = false; - DiscoverItems.Item item = null; + DiscoverItems.Item item; String jid = ""; String name = ""; String action = ""; @@ -44,7 +44,7 @@ public class DiscoverItemsProvider implements IQProvider { while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("item")) { + if ("item".equals(parser.getName())) { // Initialize the variables from the parsed XML jid = parser.getAttributeValue("", "jid"); name = parser.getAttributeValue("", "name"); @@ -52,7 +52,7 @@ public class DiscoverItemsProvider implements IQProvider { action = parser.getAttributeValue("", "action"); } } else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("item")) { + if ("item".equals(parser.getName())) { // Create a new Item and add it to DiscoverItems. item = new DiscoverItems.Item(jid); item.setName(name); @@ -60,7 +60,7 @@ public class DiscoverItemsProvider implements IQProvider { item.setAction(action); discoverItems.addItem(item); } - if (parser.getName().equals("query")) { + if ("query".equals(parser.getName())) { done = true; } }