Skip to content

Commit 078b76c

Browse files
committed
Fix NPE problem when requesting replicates
1 parent f2282a0 commit 078b76c

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/main/java/com/iexec/worker/feign/CustomFeignClient.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,19 +107,21 @@ public void registerWorker(WorkerConfigurationModel model) {
107107
}
108108

109109
public List<InterruptedReplicateModel> getInterruptedReplicates(long lastAvailableBlockNumber) {
110+
List<InterruptedReplicateModel> interruptedReplicates = null;
111+
110112
try {
111-
return replicateClient.getInterruptedReplicates(lastAvailableBlockNumber, getToken());
113+
interruptedReplicates = replicateClient.getInterruptedReplicates(lastAvailableBlockNumber, getToken());
112114
} catch (FeignException e) {
113-
if (e.status() == 0) {
114-
log.error("Failed to getInterruptedReplicates, will retry [instance:{}]", coreURL);
115-
sleep();
116-
return getInterruptedReplicates(lastAvailableBlockNumber);
117-
} else if (HttpStatus.valueOf(e.status()).equals(HttpStatus.UNAUTHORIZED)) {
115+
if (e.status() == HttpStatus.UNAUTHORIZED.value()) {
118116
generateNewToken();
119-
return getInterruptedReplicates(lastAvailableBlockNumber);
117+
interruptedReplicates = replicateClient.getInterruptedReplicates(lastAvailableBlockNumber, getToken());
118+
} else {
119+
log.error("Failed to get interrupted replicates [instance:{}]", coreURL);
120+
e.printStackTrace();
120121
}
121122
}
122-
return null;
123+
124+
return interruptedReplicates != null ? interruptedReplicates : Collections.emptyList();
123125
}
124126

125127
public List<String> getTasksInProgress() {
@@ -139,17 +141,21 @@ public List<String> getTasksInProgress() {
139141
}
140142

141143
public Optional<ContributionAuthorization> getAvailableReplicate(long lastAvailableBlockNumber) {
144+
ContributionAuthorization contributionAuth = null;
145+
142146
try {
143-
return Optional.ofNullable(replicateClient.getAvailableReplicate(lastAvailableBlockNumber, getToken()));
147+
contributionAuth = replicateClient.getAvailableReplicate(lastAvailableBlockNumber, getToken());
144148
} catch (FeignException e) {
145-
if (e.status() == 0) {
146-
log.error("Failed to getAvailableReplicate [instance:{}]", coreURL);
147-
} else if (HttpStatus.valueOf(e.status()).equals(HttpStatus.UNAUTHORIZED)) {
149+
if (e.status() == HttpStatus.UNAUTHORIZED.value()) {
148150
generateNewToken();
149-
return Optional.of(replicateClient.getAvailableReplicate(lastAvailableBlockNumber, getToken()));
151+
contributionAuth = replicateClient.getAvailableReplicate(lastAvailableBlockNumber, getToken());
152+
} else {
153+
log.error("Failed to get an available replicate [instance:{}]", coreURL);
154+
e.printStackTrace();
150155
}
151156
}
152-
return Optional.empty();
157+
158+
return contributionAuth == null ? Optional.empty() : Optional.of(contributionAuth);
153159
}
154160

155161
public void updateReplicateStatus(String chainTaskId, ReplicateStatus status) {

0 commit comments

Comments
 (0)