You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the case of an application repository extending ReactiveCouchbaseRepository and DynamicProxyable interfaces, calling deleteAllById(Iterable<? extends ID> ids) method on the application repository will result in the following runtime exception:
java.lang.reflect.UndeclaredThrowableException at jdk.proxy2/jdk.proxy2.$Proxy126.deleteAllById(Unknown Source) at org.springframework.data.couchbase.repository.query.ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.myTest1(ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java:128) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.lang.NoSuchMethodException: No such method: deleteAllById at org.springframework.data.couchbase.repository.support.FindMethod.internalFind(FindMethod.java:84) at org.springframework.data.couchbase.repository.support.FindMethod.findMethod(FindMethod.java:33) at org.springframework.data.couchbase.repository.support.DynamicInvocationHandler.invoke(DynamicInvocationHandler.java:118) ... 5 more
Test class: ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests
Test method to reproduce:
@Test
public void deleteAllByIdDynamicProxyableTest() {
ReactiveAirportRepository ar = reactiveAirportRepository.withScope(scopeName).withCollection(collectionName);
Airport vie = new Airport("airports::vie", "vie", "loww");
try {
Airport saved = ar.save(vie).block();
ar.deleteAllById(List.of(saved.getId())).block();
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
ar.delete(vie).block();
}
}
The problem does not exhibit if the application repository extends only ReactiveCouchbaseRepository.
Test class: ReactiveCouchbaseRepositoryKeyValueIntegrationTests
Test method that passes:
@Test
@IgnoreWhen(clusterTypes = ClusterType.MOCKED)
void deleteAllByIdNoDynamicProxyableTest() {
// the User class has a version.
User user = new User(UUID.randomUUID().toString(), "f", "l");
// save the document - we don't care how on this call
userRepository.save(user).block();
// Now set the version to 0, it should attempt an insert and fail.
long saveVersion = user.getVersion();
user.setVersion(0);
assertThrows(DuplicateKeyException.class, () -> userRepository.save(user).block());
user.setVersion(saveVersion + 1);
assertThrows(OptimisticLockingFailureException.class, () -> userRepository.save(user).block());
userRepository.delete(user);
// Airline does not have a version
Airline airline = new Airline(UUID.randomUUID().toString(), "MyAirline", null);
// save the document - we don't care how on this call
reactiveAirlineRepository.save(airline).block();
reactiveAirlineRepository.save(airline).block(); // If it was an insert it would fail. Can't tell if an upsert or
// cleanup.
reactiveAirlineRepository.deleteAllById(List.of(airline.getId())).block();
}
Tested with spring data couchbase 5.2.3, couchbase client 2.4.11
The text was updated successfully, but these errors were encountered:
In the case of an application repository extending ReactiveCouchbaseRepository and DynamicProxyable interfaces, calling deleteAllById(Iterable<? extends ID> ids) method on the application repository will result in the following runtime exception:
java.lang.reflect.UndeclaredThrowableException at jdk.proxy2/jdk.proxy2.$Proxy126.deleteAllById(Unknown Source) at org.springframework.data.couchbase.repository.query.ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.myTest1(ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests.java:128) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.lang.NoSuchMethodException: No such method: deleteAllById at org.springframework.data.couchbase.repository.support.FindMethod.internalFind(FindMethod.java:84) at org.springframework.data.couchbase.repository.support.FindMethod.findMethod(FindMethod.java:33) at org.springframework.data.couchbase.repository.support.DynamicInvocationHandler.invoke(DynamicInvocationHandler.java:118) ... 5 more
Test class: ReactiveCouchbaseRepositoryQueryCollectionIntegrationTests
Test method to reproduce:
The problem does not exhibit if the application repository extends only ReactiveCouchbaseRepository.
Test class: ReactiveCouchbaseRepositoryKeyValueIntegrationTests
Test method that passes:
Tested with spring data couchbase 5.2.3, couchbase client 2.4.11
The text was updated successfully, but these errors were encountered: