F (final int index) { if (index < 0) { throw new IndexOutOfBoundsException("Index: " + index + " Size: " + size()); } final int adj = resync(index); if (adj == size) { throw new IndexOutOfBoundsException("Index: " + index + " Size: " + size()); } final Content oldc = ContentList.this.remove(adj); // optimise the backing cache. backingsize = index; xdata = getDataModCount(); // use Filter to ensure the cast is right. return filter.filter(oldc); }