unregister corresponding protocol provider before uninstalling the account

cusax-fix
Yana Stamcheva 20 years ago
parent 33f5693ed6
commit 95e1a320bf

@ -8,8 +8,10 @@
import java.util.*;
import org.osgi.framework.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
import org.osgi.framework.*;
/**
* The ICQ implementation of the ProtocolProviderFactory.
@ -17,7 +19,10 @@
*/
public class ProtocolProviderFactoryIcqImpl
extends ProtocolProviderFactory
{
{
private Logger logger = Logger.getLogger(
ProtocolProviderFactoryIcqImpl.class);
/**
* The table that we store our accounts in.
*/
@ -164,6 +169,21 @@ public AccountID loadAccount( Map accountProperties)
*/
public boolean uninstallAccount(AccountID accountID)
{
//unregister the protocol provider
ServiceReference serRef = getProviderForAccount(accountID);
ProtocolProviderService protocolProvider
= (ProtocolProviderService) IcqActivator.getBundleContext()
.getService(serRef);
try {
protocolProvider.unregister();
}
catch (OperationFailedException e) {
logger.error("Failed to unregister protocol provider for account : "
+ accountID + " caused by : " + e);
}
ServiceRegistration registration
= (ServiceRegistration)registeredAccounts.remove(accountID);

@ -8,9 +8,11 @@
import java.util.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
import org.jivesoftware.smack.util.*;
import org.osgi.framework.*;
import net.java.sip.communicator.service.protocol.*;
/**
* The Jabber implementation of the ProtocolProviderFactory.
@ -19,6 +21,9 @@
public class ProtocolProviderFactoryJabberImpl
extends ProtocolProviderFactory
{
private Logger logger = Logger.getLogger(
ProtocolProviderFactoryJabberImpl.class);
/**
* The table that we store our accounts in.
*/
@ -179,6 +184,21 @@ public AccountID loadAccount( Map accountProperties)
*/
public boolean uninstallAccount(AccountID accountID)
{
//unregister the protocol provider
ServiceReference serRef = getProviderForAccount(accountID);
ProtocolProviderService protocolProvider
= (ProtocolProviderService) JabberActivator.getBundleContext()
.getService(serRef);
try {
protocolProvider.unregister();
}
catch (OperationFailedException e) {
logger.error("Failed to unregister protocol provider for account : "
+ accountID + " caused by : " + e);
}
ServiceRegistration registration
= (ServiceRegistration)registeredAccounts.remove(accountID);

@ -2,10 +2,11 @@
import java.util.*;
import org.osgi.framework.*;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.*;
import org.osgi.framework.*;
/**
* A SIP implementation of the protocol provider factory interface.
*
@ -213,6 +214,21 @@ public void loadStoredAccounts()
*/
public boolean uninstallAccount(AccountID accountID)
{
//unregister the protocol provider
ServiceReference serRef = getProviderForAccount(accountID);
ProtocolProviderService protocolProvider
= (ProtocolProviderService) SipActivator.getBundleContext()
.getService(serRef);
try {
protocolProvider.unregister();
}
catch (OperationFailedException e) {
logger.error("Failed to unregister protocol provider for account : "
+ accountID + " caused by : " + e);
}
ServiceRegistration registration
= (ServiceRegistration) registeredAccounts.remove(accountID);

Loading…
Cancel
Save