FindBugs - "kann Stream nicht schließen" bei Verwendung von ObjectOutputStream

8

Ich habe dieses Stück Code, das ein Ojcect in einen Byte-Array-Stream schreiben soll:

%Vor%

FindBugs beschwert sich jedoch über Zeile:

%Vor%

das "möglicherweise den Stream nicht schließen kann" - BAD_PRACTICE - OS_OPEN_STREAM. Kann jemand helfen?

    
Eugene 21.01.2013, 07:46
quelle

2 Antworten

8

Ich denke FindBugs erkennt nicht, dass IOUtils.closeQuietly (out) schließt.

Wie auch immer es ist genug, um ObjectOutputStream zu schließen und es schließt den zugrundeliegenden ByteArrayOutputStream. Dies ist die ObjectOutputStream.close-Implementierung

%Vor%

damit Sie Ihren Code vereinfachen können

%Vor%

oder wenn Sie in Java 7 sind

%Vor%     
Evgeniy Dorofeev 21.01.2013, 07:58
quelle
1

Dies bedeutet, dass s.close() versuchen wird, den zugrunde liegenden Stream zu schließen, aber es könnte dies nicht tun. Also solltest du es auch selbst schließen. Versuche, out.close() hinzuzufügen und zu sehen, ob die Warnung verschwindet.

    
partlov 21.01.2013 07:54
quelle