CLOUDSTACK-255: fix NPE in createPortForwardingRule due to no PortForwarding provider

(cherry picked from commit c9d492d7140dd53f1630bc5ea14b948184233612)
This commit is contained in:
Wei Zhou 2014-12-12 11:13:18 +01:00
parent fbe54974c5
commit 76dc20a0ee

View File

@ -424,14 +424,14 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
// We only support one provider for one service now
Map<Service, Set<Provider>> serviceToProviders = getServiceProvidersMap(networkId);
Set<Provider> oldProviders = serviceToProviders.get(services.toArray()[0]);
Provider oldProvider = (Provider)oldProviders.toArray()[0];
// Since IP already has service to bind with, the oldProvider can't be null
Set<Provider> newProviders = serviceToProviders.get(service);
if (newProviders == null || newProviders.isEmpty()) {
throw new InvalidParameterException("There is no new provider for IP " + publicIp.getAddress() + " of service " + service.getName() + "!");
}
Provider newProvider = (Provider)newProviders.toArray()[0];
Set<Provider> oldProviders = serviceToProviders.get(services.toArray()[0]);
Provider oldProvider = (Provider)oldProviders.toArray()[0];
Network network = _networksDao.findById(networkId);
NetworkElement oldElement = getElementImplementingProvider(oldProvider.getName());
NetworkElement newElement = getElementImplementingProvider(newProvider.getName());