Example usage for org.apache.commons.collections.buffer CircularFifoBuffer remove

List of usage examples for org.apache.commons.collections.buffer CircularFifoBuffer remove

Introduction

In this page you can find the example usage for org.apache.commons.collections.buffer CircularFifoBuffer remove.

Prototype

public Object remove() 

Source Link

Document

Removes the least recently inserted element from this buffer.

Usage

From source file:edu.umn.msi.tropix.webgui.server.messages.MessageManager.java

public Collection<T> drainQueue() {
    final HttpSession session = httpSessionSupplier.get();
    final String sessionId = session.getId();
    final String userId = userSession.getGridId();
    final List<T> objects = Lists.newArrayList();
    if (userId == null) {
        return objects;
    }//  ww w .j  a  v a2 s  . c om
    CircularFifoBuffer queue;
    synchronized (userToSessionMap) {
        if (!userToSessionMap.containsEntry(userId, sessionId)) {
            final CloseWithSession finalizer = new CloseWithSession(userId, sessionId);
            session.setAttribute("messageManagerFinalizingObject", finalizer);
            userToSessionMap.put(userId, sessionId);
            sessionToUserMap.put(sessionId, userId);
        }
        if (!bufferMap.containsKey(sessionId)) {
            final CircularFifoBuffer objectBuffer = new CircularFifoBuffer(25);
            bufferMap.put(sessionId, objectBuffer);
        }
        queue = bufferMap.get(sessionId);
    }
    synchronized (queue) {
        while (!queue.isEmpty()) {
            @SuppressWarnings("unchecked")
            final T object = (T) queue.remove();
            if (object == null) {
                break;
            }
            objects.add(object);
        }
    }
    return objects;
}