Skip to content

Commit 8858cf8

Browse files
committed
Extra small/cosmetic tweaks for the handling of the globus queue.
1 parent 62e4be2 commit 8858cf8

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

src/main/java/edu/harvard/iq/dataverse/globus/GlobusServiceBean.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,10 @@
7575
import edu.harvard.iq.dataverse.util.URLTokenUtil;
7676
import edu.harvard.iq.dataverse.util.UrlSignerUtil;
7777
import edu.harvard.iq.dataverse.util.json.JsonUtil;
78-
import jakarta.json.JsonNumber;
79-
import jakarta.json.JsonReader;
8078
import jakarta.persistence.EntityManager;
8179
import jakarta.persistence.PersistenceContext;
8280
import jakarta.servlet.http.HttpServletRequest;
8381
import jakarta.ws.rs.core.Response;
84-
import org.apache.http.util.EntityUtils;
8582

8683
@Stateless
8784
@Named("GlobusServiceBean")
@@ -517,17 +514,19 @@ public GlobusTaskState getTask(String accessToken, String taskId, Logger globusL
517514
}
518515

519516
if (result.status != 200) {
520-
// @todo It should probably retry it 2-3 times before giving up;
521-
// similarly, it should probably differentiate between a "no such task"
522-
// response and something intermittent like a server/network error or
523-
// an expired token... i.e. something that's recoverable (?)
524-
// edit: yes, but, should be done outside of this method, in the code
525-
// that uses it
517+
518+
String failureReason;
519+
if (result.jsonResponse != null) {
520+
failureReason = result.jsonResponse;
521+
} else {
522+
failureReason = "unknown";
523+
}
524+
526525
myLogger.warning("Cannot find information for the task " + taskId
527526
+ " status: "
528527
+ result.status
529528
+ " : Reason : "
530-
+ result.jsonResponse != null ? result.jsonResponse.toString() : "unknown" );
529+
+ failureReason);
531530
}
532531

533532
if (result.status == 401) {
@@ -1754,6 +1753,10 @@ public void processCompletedTask(GlobusTaskInProgress globusTask,
17541753
boolean deleteRule,
17551754
Logger taskLogger) {
17561755

1756+
if (globusTask.getDataset() == null) {
1757+
return;
1758+
}
1759+
17571760
String ruleId = globusTask.getRuleId();
17581761
Dataset dataset = globusTask.getDataset();
17591762
AuthenticatedUser authUser = globusTask.getLocalUser();

src/main/java/edu/harvard/iq/dataverse/globus/TaskMonitoringServiceBean.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,10 @@ private GlobusTaskState checkTaskState(GlobusTaskInProgress task) {
206206
try {
207207
retrieved = globusService.getTask(globusClientToken, task.getTaskId(), null);
208208
} catch (ExpiredTokenException ete) {
209+
logger.info("token expired; renewing");
209210
globusClientToken = getClientTokenForStorageDriver(task.getDataset(), true);
211+
} catch (Exception ex) {
212+
logger.warning("Unknown exception attempting to look up task " + task.getTaskId() + ": " + ex);
210213
}
211214
attempts--;
212215
}

0 commit comments

Comments
 (0)