Closed as not planned
Description
This source is working.
public CompletionStage<Shop> save(Shop shop, Stage.Session session) {
return session.persist(shop)
.thenApply(unused -> shop);
}
but upgrade hibernate-core to 2.0.5, this source is not working.
java.util.concurrent.CompletionException: org.hibernate.HibernateException: java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "org.hibernate.sql.results.graph.DomainResult.createResultAssembler(org.hibernate.sql.results.graph.FetchParentAccess, org.hibernate.sql.results.graph.AssemblerCreationState)" because the return value of "java.util.List.get(int)" is null
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:936)
at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:950)
at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2340)
at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:144)
at org.hibernate.reactive.session.impl.ReactiveSessionImpl.firePersist(ReactiveSessionImpl.java:734)
at org.hibernate.reactive.session.impl.ReactiveSessionImpl.reactivePersist(ReactiveSessionImpl.java:718)
at org.hibernate.reactive.stage.impl.StageSessionImpl.persist(StageSessionImpl.java:159)
at com.bdpick.repository.ShopRepository.save(ShopRepository.java:29)
at com.bdpick.service.ShopService.lambda$createShop$4(ShopService.java:121)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
at org.hibernate.reactive.util.async.impl.AsyncTrampoline$TrampolineInternal.unroll(AsyncTrampoline.java:131)
at org.hibernate.reactive.util.async.impl.AsyncTrampoline$TrampolineInternal.lambda$unroll$0(AsyncTrampoline.java:126)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
at io.vertx.core.Future.lambda$toCompletionStage$3(Future.java:536)
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141)
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
-- service class source --
@Transactional
public Mono<Shop> createShop(@NonNull Map<String, Object> headerMap,
@NonNull Flux<FilePart> files,
@NonNull Flux<String> filesTypes,
@NonNull Shop shop) {
List<ShopImage> imageList = new ArrayList<>();
String userId = jwtService.getUserIdByHeaderMap(headerMap);
User user = new User();
user.setId(userId);
shop.setUser(user);
return factory.withTransaction(session -> {
return shopRepository.findShopByRegisterNumber(shop, session)
.thenCompose(foundShop -> {
if (foundShop != null) {
throw new RuntimeException(KEY_DUPLICATE_REGISTER);
}
List<FilePart> filePartList = files.toStream().toList();
List<String> fileTypeList = filesTypes.toStream().toList();
IntStream.range(0, Math.min(filePartList.size(), fileTypeList.size()))
.mapToObj(i -> Tuple.of(filePartList.get(i), fileTypeList.get(i)))
.forEach(tuple -> {
String type = tuple.getString(1);
ShopImage shopImage = new ShopImage();
Image image = new Image();
BdFile bdFile = BdUtil.uploadFile(tuple.get(FilePart.class, 0), type, BdConstants.DIRECTORY_NAME_IMAGES).block();
image.setDisplayOrder(1L);
image.setBdFile(bdFile);
shopImage.setShop(shop);
shopImage.setImage(image);
shopImage.setType(ShopFileType.valueOf(type));
imageList.add(shopImage);
});
shop.setImageList(imageList);
return shopRepository.save(shop, session);
});
})
.thenApply(Mono::just)
.exceptionally(Mono::error)
.toCompletableFuture().join();
}
-- working --
hibernate-core-6.2.5.Final.jar
hibernate-reactive-core-2.0.4.Final.jar
vertx-mysql-client-4.4.4.jar
-- not working --
hibernate-core-6.2.8.Final.jar
hibernate-reactive-core-2.0.5.Final.jar
vertx-sql-client-4.4.5.jar
Metadata
Metadata
Assignees
Labels
No labels