1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2025-09-09 09:09:38 +02:00

Merge branch '4.1'

Conflicts:
	smack-im/src/main/java/org/jivesoftware/smack/roster/RosterGroup.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java
This commit is contained in:
Florian Schmaus 2015-05-27 22:50:55 +02:00
commit 2079ba6bd6
4 changed files with 48 additions and 35 deletions

View file

@ -22,7 +22,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.jivesoftware.smack.PacketCollector;
import org.jivesoftware.smack.Manager;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.SmackException.NotConnectedException;
@ -37,10 +37,9 @@ import org.jxmpp.jid.Jid;
* @see Roster#getGroup(String)
* @author Matt Tucker
*/
public class RosterGroup {
public class RosterGroup extends Manager {
private final String name;
private final XMPPConnection connection;
private final Set<RosterEntry> entries;
/**
@ -50,8 +49,8 @@ public class RosterGroup {
* @param connection the connection the group belongs to.
*/
RosterGroup(String name, XMPPConnection connection) {
super(connection);
this.name = name;
this.connection = connection;
entries = new LinkedHashSet<RosterEntry>();
}
@ -85,7 +84,7 @@ public class RosterGroup {
item.removeGroupName(this.name);
item.addGroupName(name);
packet.addRosterItem(item);
connection.createPacketCollectorAndSend(packet).nextResultOrThrow();
connection().createPacketCollectorAndSend(packet).nextResultOrThrow();
}
}
}
@ -171,7 +170,6 @@ public class RosterGroup {
* @throws InterruptedException
*/
public void addEntry(RosterEntry entry) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
PacketCollector collector = null;
// Only add the entry if it isn't already in the list.
synchronized (entries) {
if (!entries.contains(entry)) {
@ -181,12 +179,9 @@ public class RosterGroup {
item.addGroupName(getName());
packet.addRosterItem(item);
// Wait up to a certain number of seconds for a reply from the server.
collector = connection.createPacketCollectorAndSend(packet);
connection().createPacketCollectorAndSend(packet).nextResultOrThrow();
}
}
if (collector != null) {
collector.nextResultOrThrow();
}
}
/**
@ -203,7 +198,6 @@ public class RosterGroup {
* @throws InterruptedException
*/
public void removeEntry(RosterEntry entry) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
PacketCollector collector = null;
// Only remove the entry if it's in the entry list.
// Remove the entry locally, if we wait for RosterPacketListenerprocess>>Packet(Packet)
// to take place the entry will exist in the group until a packet is received from the
@ -216,12 +210,9 @@ public class RosterGroup {
item.removeGroupName(this.getName());
packet.addRosterItem(item);
// Wait up to a certain number of seconds for a reply from the server.
collector = connection.createPacketCollectorAndSend(packet);
connection().createPacketCollectorAndSend(packet).nextResultOrThrow();
}
}
if (collector != null) {
collector.nextResultOrThrow();
}
}
void addEntryLocal(RosterEntry entry) {