Giusto , è un po' uno spreco fare così semplicemente con una close. Ho risolto creandomi una nuova classe SingletonPatternSocketUDP che sfrutta il design pattern singleton (in questo modo l'ho rimossa proprio la close() in ServerUDP ) :
e funziona benissimo , senza erroricodice:public static synchronized SingletonPatternSocketUDP getSocketUDP(int porta) { if(istanza == null) istanza = new SingletonPatternSocketUDP (porta); return istanza; }(se può servire pubblico tutto il codice della classe SingletonPatternSocketUDP e non solo il metodo getSocketUDP sopra-riportato)