O valor não é atualizado no loop a menos que seja impresso [duplicado]

Esta questão já tem uma resposta aqui:

Loop não vê valor alterado por outro thread sem um comando print 1 resposta

Ok, então eu tenho um segmento de monitoramento que verifica um tamanho de ArrayList e faz algo depois que o tamanho for maior que um determinado número. O problema que estou tendo agora é que o valor do tamanho nunca é atualizado, a menos que eu tenha uma instrução print no meu loop. Aqui está algum código para mostrar o que exatamente eu tenho.

while(working) {
    // Get size function just returns the size of my list in my t class
    int size = t.getSize();
    if (size >= 10) {
        //DO STUFF
    }
}

Este código acima não funciona. Nunca entra na declaração if. No entanto, isso funciona bem:

while(working) {
    // Get size function just returns the size of my list in my t class
    int size = t.getSize();
    System.out.println(size);
    if (size >= 10) {
        //DO STUFF
    }
}

EDIT: código getSize ():

public ArrayList<byte[]> myQueue = new ArrayList<byte[]>();

public int getSize() {
    return myQueue.size();      
}

NOTA: Eu tenho outro thread em execução que está atualizando e adicionando à minha lista na minha classe t.

Qualquer ajuda? isso é realmente irritante para cuspir números quando estou tentando depurar no console.

questionAnswers(4)

yourAnswerToTheQuestion