/** Reduce size of buffer while not losing current elements beyond what the size reduction would cause. If the size is increased then no loss * of data occurs. * */ private LinkedList reduceBuffer(int newSize) { LinkedList newBuffer=new LinkedList(); List original=bufferHolder.getOrderedCollection(); Collections.reverse(original);// reverse to save the most recent values Iterator iter=original.iterator(); int i=0; while (iter.hasNext() && i<newSize) { newBuffer.add(iter.next()); i++; } return newBuffer; }