Problema de ordenação de um TreeMap por valores

Boa tarde galera estou com um problema quando tento ordenar um TreeMap por valores.
A ideia é fazer um rank de palavras. Para isso tenho um TreeMap do tipo TreeMap<String,List>, onde String é a chave e o list é uma lista de anos
em que a palavra chave ocorre. Gostaria que ela seja ordenada pelo tamanho da list.

Segue abaixo a função que adiciona uma palavra ao rank. Essa função recebe o rank de palavras que é um TreeMap,lista de palavras a serem inseridas no o rank listTerms e o ano(year) em que as palavras ocorrem.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.TreeMap;

public class Rank{
	
	public static TreeMap<String,List<Integer>> addRank(TreeMap<String,List<Integer>> rank,ArrayList<String> listTerms,int year){

		for(String term : listTerms){
			if(rank.containsKey(term)){
				List<Integer> years1 = new ArrayList<Integer>();
				years1 = rank.get(term);
				years1.add(year);
				Collections.sort(years1);
				rank.remove(term);			
				rank.put(term, years1);
				
			}else{
				List<Integer> years2 = new ArrayList<Integer>();
				years2.add(year);
				rank.put(term,years2);				
			}
		}
		ValueComparator bvc = new ValueComparator();
		bvc.setComparator(rank);
		TreeMap<String,List<Integer>> neoRank = new TreeMap<String,List<Integer>>(bvc);
		neoRank.putAll(rank);
		return neoRank;
	}
}

Segue abaixo a implementação da interface Comparator

public class ValueComparator implements Comparator<String> {

	TreeMap<String,List<Integer>> base;
	
	public void setComparator(TreeMap<String,List<Integer>> base){
		this.base = base;
	}
	
	
	@Override
	public int compare(String key1,String key2) {
		// TODO Auto-generated method stub
		List<Integer> years1 = base.get(key1);
		List<Integer> years2 = base.get(key2);
		Integer y1 = years1.size();
		Integer y2 = years2.size();
		
		return y1.compareTo(y2);
	}

}

Quando eu chamo a função addRank uma vez o rank é criado normalmente, mas qd eu chamo a função 2 ou mais vezes
ocorre um NullPointerException na linha Integer y1 = years1.size();.
Alguém pode me dizer se eu implementei a interface Comparator da forma correta.