code: public QueueItem getNextIndication()
  	{
  		synchronized (indicationKeys) {
  			if (indicationKeys.isEmpty())
  				throw new KNXIllegalStateException("no indications");
  			return ((LDataObjectQueue) indicationKeys.remove(0)).getItem();
  		}
  	}
docs: Returns the next available indication.
  <p>
  The items with the cEMI frame indications are returned in FIFO order according the
  time they were supplied to the filter and buffered in the first place, i.e. an
  earlier accepted frame is returned before an frame accepted at some later time.<br>
  Every item is only returned once by this method, after that it is no longer marked
  as new and will not cause {@link #hasNewIndication()} to return <code>true</code>
  for it.<br>
  If no indication is available, throws {@link KNXIllegalStateException}.
  <p>
  Nevertheless, the queued item might be retrieved directly through the used cache
  (which is obtained by {@link Configuration#getCache()}). Whether or not an
  returned item is completely consumed from the queue in the cache, i.e. removed from
  the cache object in the cache, is specified in the {@link LDataObjectQueue}
  containing the item at creation time (which is a task of the network filter).
  <p>
  Note, if the accessed queue in the cache was modified between the time the
  indication was added and this method call in such a way, that the original
  indication is not available anymore (for example by removal or emptied queue), that
  indication might be skipped or an empty QueueItem is returned.
  
  @return queue item containing cEMI frame indication