Updated Branches:
  refs/heads/network-refactor 759f9bd24 -> 57f084fe5

CLOUDSTACK-1303: Fix NPE when extend vlan with ipv4 only


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/57f084fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/57f084fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/57f084fe

Branch: refs/heads/network-refactor
Commit: 57f084fe5c1e70936709a73a13abf68b3b3cb01f
Parents: 759f9bd
Author: Sheng Yang <[email protected]>
Authored: Thu Feb 21 16:38:39 2013 -0800
Committer: Sheng Yang <[email protected]>
Committed: Thu Feb 21 16:38:39 2013 -0800

----------------------------------------------------------------------
 server/src/com/cloud/network/NetworkModelImpl.java |    3 +++
 utils/src/com/cloud/utils/net/NetUtils.java        |    6 ++++++
 utils/test/com/cloud/utils/net/NetUtilsTest.java   |    5 +++++
 3 files changed, 14 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57f084fe/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 12b7209..e66099b 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -551,6 +551,9 @@ public class NetworkModelImpl  implements NetworkModel, 
Manager{
     @Override
     public boolean isIP6AddressAvailableInVlan(long vlanId) {
        VlanVO vlan = _vlanDao.findById(vlanId);
+       if (vlan.getIp6Range() == null) {
+               return false;
+       }
        long existedCount = _ipv6Dao.countExistedIpsInVlan(vlanId);
        BigInteger existedInt = BigInteger.valueOf(existedCount);
        BigInteger rangeInt = NetUtils.countIp6InRange(vlan.getIp6Range());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57f084fe/utils/src/com/cloud/utils/net/NetUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/NetUtils.java 
b/utils/src/com/cloud/utils/net/NetUtils.java
index b941a41..1050765 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -1216,6 +1216,9 @@ public class NetUtils {
        
        // Can cover 127 bits
        public static BigInteger countIp6InRange(String ip6Range) {
+               if (ip6Range == null) {
+                       return null;
+               }
        String[] ips = ip6Range.split("-");
        String startIp = ips[0];
        String endIp = ips[0];
@@ -1238,6 +1241,9 @@ public class NetUtils {
        }
 
        public static boolean isIp6InRange(String ip6, String ip6Range) {
+               if (ip6Range == null) {
+                       return false;
+               }
        String[] ips = ip6Range.split("-");
        String startIp = ips[0];
        String endIp = null;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57f084fe/utils/test/com/cloud/utils/net/NetUtilsTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/net/NetUtilsTest.java 
b/utils/test/com/cloud/utils/net/NetUtilsTest.java
index fae49fd..d90d3fd 100644
--- a/utils/test/com/cloud/utils/net/NetUtilsTest.java
+++ b/utils/test/com/cloud/utils/net/NetUtilsTest.java
@@ -121,5 +121,10 @@ public class NetUtilsTest extends TestCase {
        assertTrue(NetUtils.isIp6InNetwork("1234:5678::1", "1234:5678::/64"));
        assertTrue(NetUtils.isIp6InNetwork("1234:5678::ffff:ffff:ffff:ffff", 
"1234:5678::/64"));
        assertTrue(NetUtils.isIp6InNetwork("1234:5678::", "1234:5678::/64"));
+       //Test isIp6InRange
+       assertTrue(NetUtils.isIp6InRange("1234:5678:abcd::1", 
"1234:5678:abcd::1-1234:5678:abcd::1"));
+       assertFalse(NetUtils.isIp6InRange("1234:5678:abcd::1", 
"1234:5678:abcd::2-1234:5678:abcd::1"));
+       assertFalse(NetUtils.isIp6InRange("1234:5678:abcd::1", null));
+       assertTrue(NetUtils.isIp6InRange("1234:5678:abcd::1", 
"1234:5678::1-1234:5679::1"));
     }
 }

Reply via email to