Skip to content

Commit 45fc1c2

Browse files
committed
fix: API export CRD failure
1 parent ff653a0 commit 45fc1c2

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

gravitee-apim-repository/gravitee-apim-repository-jdbc/src/main/java/io/gravitee/repository/jdbc/management/JdbcUserRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ public List<User> findByEmail(String email, String organizationId) throws Techni
110110

111111
@Override
112112
public Set<User> findByIds(final Collection<String> ids) throws TechnicalException {
113+
if (ids == null || ids.isEmpty()) {
114+
return Collections.emptySet();
115+
}
113116
final String[] lastId = new String[1];
114117
List<String> uniqueIds = ids
115118
.stream()

gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/infra/crud_service/user/UserCrudServiceImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ public Optional<BaseUserEntity> findBaseUserById(String id) {
5555

5656
@Override
5757
public Set<BaseUserEntity> findBaseUsersByIds(List<String> userIds) {
58+
if (userIds == null || userIds.isEmpty()) {
59+
return Set.of();
60+
}
5861
try {
5962
log.debug("Find users [userIds={}]", userIds);
6063
return userRepository.findByIds(userIds).stream().map(UserAdapter.INSTANCE::fromUser).collect(Collectors.toSet());

gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/infra/domain_service/api/ApiCRDExportDomainServiceImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,10 @@ private void setMembersSourceId(Set<MemberCRD> members) {
9494

9595
membersById.forEach((id, member) -> {
9696
var user = usersById.get(id);
97-
member.setSourceId(user.getSourceId());
98-
member.setSource(user.getSource());
97+
if (user != null) {
98+
member.setSourceId(user.getSourceId());
99+
member.setSource(user.getSource());
100+
}
99101
member.setId(null);
100102
});
101103
}

gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/test/java/io/gravitee/apim/infra/crud_service/user/UserCrudServiceImplTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.junit.jupiter.api.BeforeEach;
3737
import org.junit.jupiter.api.Nested;
3838
import org.junit.jupiter.api.Test;
39+
import org.junit.jupiter.params.ParameterizedTest;
40+
import org.junit.jupiter.params.provider.NullAndEmptySource;
3941

4042
public class UserCrudServiceImplTest {
4143

@@ -121,6 +123,13 @@ void should_throw_when_technical_exception_occurs() throws TechnicalException {
121123
@Nested
122124
class FindBaseUserByIds {
123125

126+
@ParameterizedTest
127+
@NullAndEmptySource
128+
void should_return_empty_set_when_user_ids_is_null_or_empty(List<String> userIds) {
129+
var result = service.findBaseUsersByIds(userIds);
130+
assertThat(result).isEmpty();
131+
}
132+
124133
@Test
125134
void should_find_users_and_adapt_them() throws TechnicalException {
126135
// Given

0 commit comments

Comments
 (0)