Updated Branches: refs/heads/master bbfa9bfcb -> 7b63894a0
CLOUDSTACK-2891. While adding a new vlan range if the new range extends an existing range then CS extends the existing range to include the new range. This is done by checking if the last vlan in the new range is same as the start vlan of any existing range. Since for a single vlan the start and the end vlan are the same the check goes to an infinite loop resulting in a java.lang.OutOfMemoryError: Java heap space error. Remove the check for a single vlan because if an existing range starts with the single vlan then it implies that the range already exists Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7b63894a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7b63894a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7b63894a Branch: refs/heads/master Commit: 7b63894a0a2226c16de6ce2eaa5aa6f62746026c Parents: bbfa9bf Author: Likitha Shetty <[email protected]> Authored: Tue Jun 11 11:45:31 2013 +0530 Committer: Likitha Shetty <[email protected]> Committed: Tue Jun 11 12:08:05 2013 +0530 ---------------------------------------------------------------------- server/src/com/cloud/network/NetworkServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b63894a/server/src/com/cloud/network/NetworkServiceImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index d5a59d6..407bdc2 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -2663,7 +2663,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { existingRanges.get(i).second(-1); } value = vnetMap.get((existingRanges.get(i).second())); - if (value != null) { + if (value != null && ( (existingRanges.get(i).second()) != (existingRanges.get(i).first()) )) { vnetMap.remove((existingRanges.get(i).second())); vnetMap.remove(existingRanges.get(i).first()); vnetMap.put(existingRanges.get(i).first(),value);
