Skip to content

Commit 2945443

Browse files
committed
fixes NPE issues reported in #203
1 parent 4873d0a commit 2945443

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

nitrite/src/main/java/org/dizitart/no2/exceptions/ErrorCodes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public class ErrorCodes {
113113
public static final int VE_OBJ_STORE_EMPTY_KEY = 1085;
114114
public static final int VE_FIND_NOT_IN_INDEX_NULL_FIELD = 1086;
115115
public static final int VE_FIND_NOT_IN_INDEX_NULL_VALUE = 1087;
116+
public static final int VE_OBJ_REMOVE_NULL_OBJECT = 1088;
116117

117118
/* NitriteIOException Codes */
118119
public static final int NIOE_DATABASE_OPENED = 2001;

nitrite/src/main/java/org/dizitart/no2/objects/DefaultObjectRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ public WriteResult update(ObjectFilter filter, Document update, boolean justOnce
158158

159159
@Override
160160
public WriteResult remove(T element) {
161+
notNull(element, errorMessage("element can not be null", VE_OBJ_REMOVE_NULL_OBJECT));
161162
if (idField == null) {
162163
throw new NotIdentifiableException(OBJ_REMOVE_FAILED_AS_NO_ID_FOUND);
163164
}

nitrite/src/test/java/org/dizitart/no2/EdgeCases.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
import org.dizitart.no2.objects.ObjectRepository;
55
import org.dizitart.no2.objects.data.Employee;
66
import org.dizitart.no2.objects.data.Note;
7+
import org.dizitart.no2.objects.data.WithNitriteId;
78
import org.dizitart.no2.objects.filters.ObjectFilters;
89
import org.junit.Test;
910

1011
import static org.junit.Assert.assertNotNull;
12+
import static org.junit.Assert.assertNull;
1113

1214
/**
1315
* @author Anindya Chatterjee
@@ -34,6 +36,14 @@ public void testDeleteIteratorNPE() {
3436

3537
@Test
3638
public void testDelete() {
37-
Employee employee = employeeRepository.find().firstOrDefault();
39+
ObjectRepository<WithNitriteId> repo = db.getRepository(WithNitriteId.class);
40+
WithNitriteId one = new WithNitriteId();
41+
one.setName("Jane");
42+
repo.insert(one);
43+
44+
WithNitriteId note = repo.find().firstOrDefault();
45+
repo.remove(note);
46+
47+
assertNull(repo.getById(one.idField));
3848
}
3949
}

nitrite/src/test/java/org/dizitart/no2/objects/NitriteIdAsIdTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818

1919
package org.dizitart.no2.objects;
2020

21-
import lombok.Data;
2221
import org.dizitart.no2.Nitrite;
2322
import org.dizitart.no2.NitriteId;
2423
import org.dizitart.no2.WriteResult;
2524
import org.dizitart.no2.exceptions.InvalidIdException;
25+
import org.dizitart.no2.objects.data.WithNitriteId;
2626
import org.dizitart.no2.util.Iterables;
2727
import org.junit.After;
2828
import org.junit.Before;
@@ -106,10 +106,4 @@ public void changeIdDuringUpdate() {
106106
assertEquals(repo.size(), 1);
107107
}
108108

109-
@Data
110-
private static class WithNitriteId {
111-
@Id
112-
private NitriteId idField;
113-
private String name;
114-
}
115109
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.dizitart.no2.objects.data;
2+
3+
import lombok.Data;
4+
import org.dizitart.no2.NitriteId;
5+
import org.dizitart.no2.objects.Id;
6+
7+
/**
8+
* @author Anindya Chatterjee
9+
*/
10+
@Data
11+
public class WithNitriteId {
12+
@Id
13+
public NitriteId idField;
14+
public String name;
15+
}

0 commit comments

Comments
 (0)