Hmmm, this needs clarification. The free tree set is order based on size, so the smaller free spaces come first and the biggers one later. But, this comparator seems to do the opposite. The entries with the bigger offset will come first, and then the entries with smaller offset, is that intended? Please add javadoc to clarify this logic.