Tôi đang cố tìm lỗi trong mã kế thừa của chúng tôi bằng cách sử dụng findBugs. Trong một phương thức, findBugs đang đưa ra lỗi OBL_UNSATISFIED_OBLIGATION. Tôi đã xác minh rằng tất cả các luồng đều được đóng đúng cách. Dưới đây là đoạn mã:FindBugs OBL_UNSATISFIED_OBLIGATION
FileWriter fw = null;
FileReader fr = null;
try {
if (!new File(filePath).exists()) {
requiredStrings = CommandUtils.invoke(filename);
fw = new FileWriter(filePath);
fw.write(requiredStrings);
} else {
StringBuilder sb = new StringBuilder();
fr = new FileReader(filePath);
char[] buffer = new char[BLOCK_READ_SIZE];
int bytesRead;
while (-1 != (bytesRead = fr.read(buffer, 0, BLOCK_READ_SIZE))) {
sb.append(buffer, 0, bytesRead);
}
requiredStrings = sb.toString();
}
} finally {
if (fw != null) {
fw.close();
}
if (fr != null) {
fr.close();
}
}
return requiredStrings;
Lỗi nói rằng Nghĩa vụ dọn dẹp resurces trong không xả, Path tiếp tục tại .... dòng .... nghĩa vụ còn lại {đọc x 1, Writer x-1 }
Có thể bạn phàn nàn rằng bạn không bắt ngoại lệ từ 'close()' để 'fr' có thể không được để trống nếu' fw.close() 'ném. Ngoài ra, [_ "giả thuyết suy đoán dương tính giả cho mẫu lỗi này chưa được điều chỉnh rộng rãi, do đó, báo cáo về các kết quả dương tính giả là hữu ích đối với chúng tôi." _] (Http://findbugs.sourceforge.net/bugDescriptions.html#OBL_UNSATISFIED_OBLIGATION) –
Xem này: [Java đóng kết nối và FindBugs] [1] [1]: http://stackoverflow.com/questions/4398386/java-closing-connections-and-findbugs – zhaoyuanjie