Skip to content

Commit a6c0143

Browse files
authored
Fix for #1032 (#1033)
* fix for #1032 * Update CHANGELOG.md
1 parent 7e30039 commit a6c0143

3 files changed

Lines changed: 35 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
- Fix for `Document.getFields()` not returning iterable fields
1111
- Fix for failing tests on systems with non-ENGLISH locale #994
12+
- Fix for NPE in `DefaultTransactionalRepository` #1032
1213

1314
## Release 4.3.0 - Jul 1, 2024
1415

nitrite/src/main/java/org/dizitart/no2/transaction/DefaultTransactionalRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public void clear() {
153153

154154
@Override
155155
public Cursor<T> find(Filter filter, FindOptions findOptions) {
156-
return operations.find(filter, findOptions, type);
156+
return operations.find(filter, findOptions, getType());
157157
}
158158

159159
@Override

nitrite/src/test/java/org/dizitart/no2/integration/transaction/TransactionRepositoryTest.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,26 @@
2020
import com.github.javafaker.Faker;
2121
import lombok.extern.slf4j.Slf4j;
2222
import org.dizitart.no2.collection.Document;
23+
import org.dizitart.no2.collection.FindOptions;
2324
import org.dizitart.no2.collection.NitriteCollection;
2425
import org.dizitart.no2.common.meta.Attributes;
2526
import org.dizitart.no2.exceptions.NitriteIOException;
2627
import org.dizitart.no2.exceptions.TransactionException;
2728
import org.dizitart.no2.index.IndexType;
2829
import org.dizitart.no2.integration.repository.BaseObjectRepositoryTest;
29-
import org.dizitart.no2.repository.ObjectRepository;
3030
import org.dizitart.no2.integration.repository.data.SubEmployee;
31+
import org.dizitart.no2.integration.repository.decorator.Manufacturer;
32+
import org.dizitart.no2.integration.repository.decorator.ManufacturerDecorator;
33+
import org.dizitart.no2.repository.Cursor;
34+
import org.dizitart.no2.repository.ObjectRepository;
3135
import org.dizitart.no2.transaction.Session;
3236
import org.dizitart.no2.transaction.Transaction;
3337
import org.junit.Test;
3438

35-
import java.util.*;
39+
import java.util.ArrayList;
40+
import java.util.HashMap;
41+
import java.util.List;
42+
import java.util.Map;
3643
import java.util.concurrent.ExecutionException;
3744
import java.util.concurrent.ExecutorService;
3845
import java.util.concurrent.Executors;
@@ -824,4 +831,28 @@ public void testFailureOnClosedTransaction() {
824831
fail();
825832
}
826833
}
834+
835+
@Test
836+
public void testWithEntityDecorator() {
837+
ObjectRepository<Manufacturer> repo = db.getRepository(new ManufacturerDecorator());
838+
try (Session session = db.createSession()) {
839+
try (Transaction transaction = session.beginTransaction()) {
840+
ObjectRepository<Manufacturer> txRepo = transaction.getRepository(new ManufacturerDecorator());
841+
Manufacturer manufacturer = new Manufacturer();
842+
manufacturer.setName("John");
843+
manufacturer.setAddress("1234");
844+
manufacturer.setUniqueId(1);
845+
txRepo.insert(manufacturer);
846+
847+
Cursor<Manufacturer> cursor = txRepo.find(where("name").eq("John"), FindOptions.limitBy(1));
848+
for (Manufacturer item : cursor) {
849+
assertEquals(item.getName(), "John");
850+
}
851+
852+
transaction.commit();
853+
}
854+
}
855+
Cursor<Manufacturer> cursor = repo.find(where("name").eq("John"), FindOptions.limitBy(1));
856+
assertEquals(cursor.size(), 1);
857+
}
827858
}

0 commit comments

Comments
 (0)