Skip to content
Snippets Groups Projects
Commit 6e1c2d9b authored by Riabokon Stanislav(EPAM)[GCP]'s avatar Riabokon Stanislav(EPAM)[GCP]
Browse files

Merge branch 'empty-gcsVersionPaths' into 'master'

Fix java.lang.IndexOutOfBoundsException in RecordMetadata#getLatestVersion (GONRG-10719)

See merge request !975
parents 6bee6e92 08f579cc
No related branches found
No related tags found
1 merge request!975Fix java.lang.IndexOutOfBoundsException in RecordMetadata#getLatestVersion (GONRG-10719)
Pipeline #300965 failed
......@@ -29,7 +29,7 @@
<maven.compiler.source>17</maven.compiler.source>
<docker.image.prefix>opendes</docker.image.prefix>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<os-core-common.version>2.0.0</os-core-common.version>
<os-core-common.version>3.3.1</os-core-common.version>
<netty.version>4.1.115.Final</netty.version>
<snakeyaml.version>2.0</snakeyaml.version>
<commons-codec.version>1.14</commons-codec.version>
......
......@@ -98,7 +98,13 @@ public abstract class BatchServiceImpl implements BatchService {
continue;
}
validRecords.put(recordId, recordMetadata.getVersionPath(recordMetadata.getLatestVersion()));
Long latestVersion = recordMetadata.getLatestVersion();
if (latestVersion == null) {
recordsNotFound.add(recordId);
continue;
}
validRecords.put(recordId, recordMetadata.getVersionPath(latestVersion));
}
List<String> validRecordObjects = new ArrayList<>(validRecords.values());
......
......@@ -247,6 +247,28 @@ class BatchServiceImplTest {
assertTrue(!multiRecordResponse.getConversionStatuses().isEmpty());
}
@Test
void getMultipleRecords_returnsInvalidRecords_whenRecordsWithoutGcsVersionPaths() {
List<String> recordIds = Arrays.asList(TEST_ID_1, TEST_ID_2);
Map<String, RecordMetadata> recordMetadataMap = new HashMap<>();
RecordMetadata recordMetadataTestId1 = buildRecordMetadata(TEST_ID_1);
RecordMetadata recordMetadataTestId2 = buildRecordMetadata(TEST_ID_2);
recordMetadataTestId1.setGcsVersionPaths(new ArrayList<>());
recordMetadataTestId2.setGcsVersionPaths(new ArrayList<>());
recordMetadataMap.put(TEST_ID_1, recordMetadataTestId1);
recordMetadataMap.put(TEST_ID_2, recordMetadataTestId2);
when(recordRepository.get(recordIds, Optional.empty())).thenReturn(recordMetadataMap);
MultiRecordIds multiRecordIds = new MultiRecordIds();
multiRecordIds.setRecords(recordIds);
MultiRecordInfo multiRecordInfo = sut.getMultipleRecords(multiRecordIds, Optional.empty());
assertTrue(multiRecordInfo.getRecords().isEmpty());
assertFalse(multiRecordInfo.getInvalidRecords().isEmpty());
assertTrue(multiRecordInfo.getRetryRecords().isEmpty());
}
private static RecordMetadata buildRecordMetadata(String recordId) {
Acl acl = new Acl();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment