Skip to content
This repository was archived by the owner on Oct 6, 2023. It is now read-only.

Commit 1ed28e4

Browse files
author
sowerstl
committed
Handle 404 when there are no files when fetching GitLab Tree list.
1 parent 030f86f commit 1ed28e4

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

src/main/java/gov/osti/connectors/api/GitLabAPI.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,16 @@ public GitLabFile[] fetchTree() throws IOException {
467467
* @throws IOException
468468
*/
469469
public GitLabFile[] fetchTree(String path) throws IOException {
470-
String response = fetch(gitLabAPIGet(acquireTreeCmd(path)));
470+
String response = "";
471+
try {
472+
response = fetch(gitLabAPIGet(acquireTreeCmd(path)));
473+
} catch (IOException e) {
474+
// if we didn't find Files on GET, its okay, they just doesn't exist. Return NULL.
475+
if (!e.getMessage().equals("Failed response: " + HttpServletResponse.SC_NOT_FOUND))
476+
throw e;
477+
478+
return null;
479+
}
471480
return MAPPER.readValue(response, GitLabFile[].class);
472481
}
473482

src/main/java/gov/osti/services/Metadata.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,19 +1949,22 @@ private static void processOSTIGitLab(DOECodeMetadata md, String filePath, Strin
19491949
int adds = 0;
19501950
int updates = 0;
19511951
int deletes = 0;
1952-
for ( GitLabFile f : files ) {
1953-
if (!f.getType().equalsIgnoreCase("tree")) {
1954-
if (f.getPath().equals(uploadFile)) {
1955-
// update, if filename exists already
1956-
commit.addBase64ActionByValues("update", uploadFile, base64Content);
19571952

1958-
updates++;
1959-
}
1960-
else {
1961-
// delete, if file is not being submitted
1962-
commit.addBase64ActionByValues("delete", f.getPath(), null);
1953+
if (files != null) {
1954+
for ( GitLabFile f : files ) {
1955+
if (!f.getType().equalsIgnoreCase("tree")) {
1956+
if (f.getPath().equals(uploadFile)) {
1957+
// update, if filename exists already
1958+
commit.addBase64ActionByValues("update", uploadFile, base64Content);
1959+
1960+
updates++;
1961+
}
1962+
else {
1963+
// delete, if file is not being submitted
1964+
commit.addBase64ActionByValues("delete", f.getPath(), null);
19631965

1964-
deletes++;
1966+
deletes++;
1967+
}
19651968
}
19661969
}
19671970
}

0 commit comments

Comments
 (0)