Example usage for org.springframework.web.context.request.async DeferredResult isSetOrExpired

List of usage examples for org.springframework.web.context.request.async DeferredResult isSetOrExpired

Introduction

In this page you can find the example usage for org.springframework.web.context.request.async DeferredResult isSetOrExpired.

Prototype

public final boolean isSetOrExpired() 

Source Link

Document

Return true if this DeferredResult is no longer usable either because it was previously set or because the underlying request expired.

Usage

From source file:com.sishuok.chapter3.web.controller.chat.MsgPublisher.java

public void logout(String username) {
    if (username == null) {
        return;//w w  w .  j ava  2 s .c o m
    }
    Queue<DeferredResult<String>> queue = usernameToDeferredResultMap.get(username);
    boolean isLogout = false;
    if (queue != null) {
        if (queue.size() == 0) {
            isLogout = true;
        } else {
            isLogout = true;
            Iterator<DeferredResult<String>> iter = queue.iterator();
            while (iter.hasNext()) {
                DeferredResult<String> result = iter.next();
                if (!result.isSetOrExpired()) {
                    isLogout = false;
                    break;
                }
            }
        }
    }

    if (isLogout) {
        StringBuilder data = new StringBuilder();
        data.append("{");
        data.append("\"type\" : \"logout\"");
        data.append(",\"username\" : \"" + username + "\"");
        data.append("}");
        publish(null, username, data.toString());
        usernameToDeferredResultMap.remove(username);
    }
}

From source file:org.springframework.web.context.request.async.DeferredResultInterceptorChain.java

public void triggerAfterTimeout(NativeWebRequest request, DeferredResult<?> deferredResult) throws Exception {
    for (DeferredResultProcessingInterceptor interceptor : this.interceptors) {
        if (deferredResult.isSetOrExpired()) {
            return;
        }/*from  w w w . j av  a 2 s  .  c  o  m*/
        if (!interceptor.handleTimeout(request, deferredResult)) {
            break;
        }
    }
}

From source file:org.springframework.web.context.request.async.DeferredResultInterceptorChain.java

/**
 * @return true to continue error handling, or false to bypass any further
 * error handling//from   ww  w  .  ja  va 2  s . co m
 */
public boolean triggerAfterError(NativeWebRequest request, DeferredResult<?> deferredResult, Throwable ex)
        throws Exception {

    for (DeferredResultProcessingInterceptor interceptor : this.interceptors) {
        if (deferredResult.isSetOrExpired()) {
            return false;
        }
        if (!interceptor.handleError(request, deferredResult, ex)) {
            return false;
        }
    }
    return true;
}