O WeakHashMap está sempre crescendo ou limpa as chaves de lixo?

Estou tentando usarWeakHashMap como concorrenteSet de referências fracas.

    this.subscribers =
            Collections.synchronizedSet(
                    Collections.newSetFromMap(
                            new WeakHashMap <>()
                    )
            );

Quando um elemento vai para a coleta de lixo, meu conjunto continua a relatá-lo como parte da coleção. Parece que o mapa está sempre crescend

A documentação diz:

Quando uma chave é descartada, sua entrada é efetivamente removida do mapa,…

Mas isso não parece ser o caso na prátic

Existe algum momento em que oWeakHashMap limpa os detritos?

questionAnswers(1)

yourAnswerToTheQuestion