Esempio

public class ClassA {

public void makeStream() {

try {
Socket socket = new Socket();
socket.getOutputStream();
//eseguire un'operazione...

}
catch (IOException e) {
//flusso mancante...
}
}
}



Soluzione
Per evitare perdite di risorse, verificare che close() venga richiamato su ogni java.net.Socket.
Nota: questa regola si applica a tutte le forme del costruttore Socket.


public class ClassA {

public void makeStream() {

Socket socket = null;
try {
socket = new Socket();
socket.getOutputStream();
//eseguire un'operazione...

}
catch (IOException e) {
//eseguire un'operazione...

}
finally {
try {
socket.close();
}
catch(IOException e) {
//eseguire un'operazione...

}
}
}
}