import javax.servlet.http.HttpServletResponse;
import jalview.bin.Console;
+import jalview.gui.AlignFrame;
import jalview.rest.RestHandler.Status;
public abstract class AbstractEndpointAsync extends AbstractEndpoint
private Status tempStatus = null;
+ protected void removeFromCaches(HttpServletRequest request)
+ {
+ removeFromCaches(getId(request));
+ }
+
+ protected void removeFromCaches(String id)
+ {
+ CompletableFuture cf = cfMap.get(id);
+ if (cf == null || cf.isDone())
+ cfMap.remove(id);
+ AlignFrame.removeFromAlignFrameCache(id);
+ API.getStatusMap().remove(getId());
+ }
+
protected void setCompletableFuture(CompletableFuture<Void> cf)
{
this.cf = cf;
// subclass method
initialise(request, response);
+ Console.debug("**** STATUS=" + getStatus());
if (checkStatus(request, response, Status.STARTED))
{
+ /*
+ // double check alignframe
+ Console.debug("**** STATUS2=" + getStatus());
+ if (getStatus().compareTo(Status.IN_PROGRESS) > 0
+ && getAlignFrameUsingId(request) == null)
+ {
+ Console.debug("**** STATUS3=" + getStatus());
+ // delete key from cache
+ Console.debug("Cannot find cached AlignFrame for '" + getId()
+ + "', deleting key from cache");
+ removeFromCaches(getId());
+ this.changeStatus(null);
+ this.setCompletableFuture(null);
+ }
+ else
+ {
+ */
String alreadyFinishedString = null;
if (getStatus() == Status.FINISHED)
{
}
returnStatus(request, response, alreadyFinishedString);
return;
+ /*
+ }
+ */
}
if (getCompletableFuture() == null)