protected void doBrowseList(List<Message> browseList, int max, PendingList list, ReentrantReadWriteLock lock, ConnectionContext connectionContext, String name) throws Exception { List<MessageReference> toExpire = new ArrayList<MessageReference>(); lock.readLock().lock(); try { addAll(list.values(), browseList, max, toExpire); } finally { lock.readLock().unlock(); } for (MessageReference ref : toExpire) { if (broker.isExpired(ref)) { LOG.debug("expiring from {}: {}", name, ref); messageExpired(connectionContext, ref); } else { lock.writeLock().lock(); try { list.remove(ref); } finally { lock.writeLock().unlock(); } ref.decrementReferenceCount(); } } }
protected void doBrowseList(List<Message> browseList, int max, PendingList list, ReentrantReadWriteLock lock, ConnectionContext connectionContext, String name) throws Exception { List<MessageReference> toExpire = new ArrayList<MessageReference>(); lock.readLock().lock(); try { addAll(list.values(), browseList, max, toExpire); } finally { lock.readLock().unlock(); } for (MessageReference ref : toExpire) { if (broker.isExpired(ref)) { LOG.debug("expiring from {}: {}", name, ref); messageExpired(connectionContext, ref); } else { lock.writeLock().lock(); try { list.remove(ref); } finally { lock.writeLock().unlock(); } ref.decrementReferenceCount(); } } }
protected void doBrowseList(List<Message> browseList, int max, PendingList list, ReentrantReadWriteLock lock, ConnectionContext connectionContext, String name) throws Exception { List<MessageReference> toExpire = new ArrayList<MessageReference>(); lock.readLock().lock(); try { addAll(list.values(), browseList, max, toExpire); } finally { lock.readLock().unlock(); } for (MessageReference ref : toExpire) { if (broker.isExpired(ref)) { LOG.debug("expiring from {}: {}", name, ref); messageExpired(connectionContext, ref); } else { lock.writeLock().lock(); try { list.remove(ref); } finally { lock.writeLock().unlock(); } ref.decrementReferenceCount(); } } }
protected void doBrowseList(List<Message> browseList, int max, PendingList list, ReentrantReadWriteLock lock, ConnectionContext connectionContext, String name) throws Exception { List<MessageReference> toExpire = new ArrayList<MessageReference>(); lock.readLock().lock(); try { addAll(list.values(), browseList, max, toExpire); } finally { lock.readLock().unlock(); } for (MessageReference ref : toExpire) { if (broker.isExpired(ref)) { LOG.debug("expiring from {}: {}", name, ref); messageExpired(connectionContext, ref); } else { lock.writeLock().lock(); try { list.remove(ref); } finally { lock.writeLock().unlock(); } ref.decrementReferenceCount(); } } }