Skip to content

Commit 06497cc

Browse files
committed
MaskedFlag to detect null elements in array
1 parent 3f57966 commit 06497cc

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/main/java/org/lmdbjava/MaskedFlag.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ static int mask(final MaskedFlag... flags) {
4242

4343
int result = 0;
4444
for (MaskedFlag flag : flags) {
45+
if (flag == null) {
46+
continue;
47+
}
4548
result |= flag.getMask();
4649
}
4750
return result;

src/test/java/org/lmdbjava/MaskedFlagTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import static org.hamcrest.CoreMatchers.is;
1919
import static org.hamcrest.MatcherAssert.assertThat;
20+
import static org.hamcrest.Matchers.arrayWithSize;
2021
import org.junit.Test;
2122
import static org.lmdbjava.EnvFlags.MDB_FIXEDMAP;
2223
import static org.lmdbjava.EnvFlags.MDB_NOSYNC;
@@ -54,6 +55,10 @@ public void masking() {
5455
final EnvFlags[] emptyFlags = new EnvFlags[]{};
5556
assertThat(mask(emptyFlags), is(0));
5657

58+
final EnvFlags[] nullElementZero = new EnvFlags[]{null};
59+
assertThat(nullElementZero, is(arrayWithSize(1)));
60+
assertThat(mask(nullElementZero), is(0));
61+
5762
assertThat(mask(MDB_NOSYNC), is(MDB_NOSYNC.getMask()));
5863

5964
final int expected = MDB_NOSYNC.getMask() + MDB_FIXEDMAP.getMask();

0 commit comments

Comments
 (0)