CLOUDSTACK-255: fix NPE in createPortForwardingRule due to no PortForwarding provider (cherry picked from commit c9d492d7140dd53f1630bc5ea14b948184233612)
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/76dc20a0 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/76dc20a0 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/76dc20a0 Branch: refs/heads/master Commit: 76dc20a0ee199d0b2d15f7ffe21fc9c45c72e9cc Parents: fbe5497 Author: Wei Zhou <w.z...@tech.leaseweb.com> Authored: Fri Dec 12 11:13:18 2014 +0100 Committer: Wei Zhou <w.z...@tech.leaseweb.com> Committed: Fri Dec 12 11:15:08 2014 +0100 ---------------------------------------------------------------------- server/src/com/cloud/network/NetworkModelImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/76dc20a0/server/src/com/cloud/network/NetworkModelImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index 2edf970..1fd354d 100755 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -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());