Skip to content

Commit bc2ecc9

Browse files
committed
withRemoved bugfix, tests, version bump
1 parent 6187c20 commit bc2ecc9

File tree

5 files changed

+11
-5
lines changed

5 files changed

+11
-5
lines changed

publish.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apply plugin: 'signing'
33

44
group = 'com.github.maltalex'
55
archivesBaseName = 'ineter'
6-
version = '0.3.0'
6+
version = '0.3.1'
77

88
task javadocJar(type: Jar) {
99
classifier = 'javadoc'

src/main/java/com/github/maltalex/ineter/range/IPv4Range.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ public List<IPv4Range> withRemoved(Collection<IPv4Range> ranges) {
224224
List<IPv4Range> merged = IPv4Range.merge(ranges);
225225
ret.add(this);
226226
for (IPv4Range toRemove : merged) {
227+
if (ret.isEmpty()) {
228+
break;
229+
}
227230
IPv4Range next = ret.remove(ret.size() - 1);
228231
// a bit faster than calling withRemoved() one range at a time
229232
if (toRemove.getFirst().compareTo(next.getFirst()) > 0) {

src/main/java/com/github/maltalex/ineter/range/IPv6Range.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,9 @@ public List<IPv6Range> withRemoved(Collection<IPv6Range> ranges) {
253253
List<IPv6Range> merged = IPv6Range.merge(ranges);
254254
ret.add(this);
255255
for (IPv6Range toRemove : merged) {
256+
if (ret.isEmpty()) {
257+
break;
258+
}
256259
IPv6Range next = ret.remove(ret.size() - 1);
257260
// a bit faster than calling withRemoved() one range at a time
258261
if (toRemove.getFirst().compareTo(next.getFirst()) > 0) {

src/test/java/com/github/maltalex/ineter/range/IPv4RangeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,8 @@ void withRemovedCollectionEmpty() {
393393
IPv4Range.parse("10.0.0.0/24").withRemoved(Arrays.asList(IPv4Range.parse("10.0.0.0/24"))));
394394
assertEquals(emptyList(),
395395
IPv4Range.parse("10.0.0.0/24").withRemoved(Arrays.asList(IPv4Range.parse("0.0.0.0/0"))));
396-
assertEquals(emptyList(),
397-
IPv4Range.parse("10.0.0.0/24").withRemoved(Arrays.asList(IPv4Range.parse("9.0.0.0-11.0.0.0"))));
396+
assertEquals(emptyList(), IPv4Range.parse("10.0.0.0/24")
397+
.withRemoved(Arrays.asList(IPv4Range.parse("9.0.0.0-11.0.0.0"), IPv4Range.parse("13.0.0.0/24"))));
398398
}
399399

400400
@ParameterizedTest

src/test/java/com/github/maltalex/ineter/range/IPv6RangeTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,8 +388,8 @@ void withRemovedCollectionEmpty() {
388388
assertEquals(emptyList(),
389389
IPv6Range.parse("1234::/16").withRemoved(Arrays.asList(IPv6Range.parse("1234::/16"))));
390390
assertEquals(emptyList(), IPv6Range.parse("1234::/16").withRemoved(Arrays.asList(IPv6Range.parse("::/0"))));
391-
assertEquals(emptyList(),
392-
IPv6Range.parse("1234::/16").withRemoved(Arrays.asList(IPv6Range.parse("1230::-1240::"))));
391+
assertEquals(emptyList(), IPv6Range.parse("1234::/16")
392+
.withRemoved(Arrays.asList(IPv6Range.parse("1230::-1240::"), IPv6Range.parse("2222::0/16"))));
393393
}
394394

395395
@ParameterizedTest

0 commit comments

Comments
 (0)