violet_prog ha scritto:
Qualcosa del genere, come andrebbe...?
Sì e no ... quasi. Innanzitutto, lo dico in generale, abituati a tenere sempre i campi come "private". Salvo casi e design particolari.
Io farei
if (System.currentTimeMillis() < timeOut)
che è anche più comprensibile ("se sono prima del timeout"). Piuttosto di dover ragionare sulla sottrazione.
Ma il vero problema (e qui ti si schianta) è che
map.get(t)+1
all'inizio, la prima volta per il thread, il get ti dà null perché non c'è la chiave. Un Integer + int causa il auto-unboxing del Integer prima di fare la somma ma essendo un reference null ti becchi NullPointerException. Cerca di sistemarlo con qualche logica in più, cercando di non ripetere il get.