Eclipse (Juno) gives the following warning:
Potential resource leak: 'os' may not be closed
at the first line of the try body in this code:
static void saveDetails(byte[] detailsData) {
OutputStream os = null;
try {
os = sContext.openFileOutput(DETAILS_FILE_NAME, Context.MODE_PRIVATE);
os.write(detailsData);
} catch (IOException e) {
Log.w(LOG_TAG, "Unable to save details", e);
} finally {
if (os != null) {
try {
os.close();
} catch (IOException ignored) {
}
}
}
}
The method openFileOutput is declared to throw a FileNotFoundException.
Is this a false positive? It seems like a fairly vanilla execution path analysis.