속성 파일을 읽어야합니다. 이 목적으로 BufferedReader와 FileReader를 사용하고 있습니다. try 섹션 전에 null로 BufferedReader를 초기화하고 try 섹션에서 초기화 중입니다. 마지막으로, 나는 독자를 닫고있다. 이 시점에서 제목에 언급 된 오류가 발생합니다.Findbugs 오류 - 버그 : br 예외 경로에서 참조 해제 될 보장 null
가 어떻게이 오류를 제거 할 수 있습니다 -
전체 코드는
public void getPageTitleProperties() throws IOException
{
BufferedReader br = null;
String lhs, rhs;
try
{
br = new BufferedReader(new FileReader("res" + File.separator + "pagetitle.properties"));
String line;
while ((line = br.readLine()) != null)
{
String [] keyvalue = line.split("=");
lhs = keyvalue[0];
rhs = keyvalue[1];
expectedTitles.put(lhs, rhs);
}
}
catch (RuntimeException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
finally
{
br.close();
}
System.out.println("Expected URLs and Titles");
for (String url : expectedTitles.keySet())
{
System.out.println(url + ":" + expectedTitles.get(url));
}
}
버그 세부 사항은 아래에? 내가 null이 아닌, try 블록 (변수가 finally 블록에서 해결할 수 없으므로 작동하지 않는)에서 초기화하는 BR을 초기화 해 보았습니다. :)). 비슷한 게시물에서 사람들은 가능한 한 위음성이라고 언급했습니다. 나는 또한 - http://findbugs.sourceforge.net/bugDescriptions.html#NP_GUARANTEED_DEREF을 참조했지만 버그를 제거하는 방법을 알 수 없었다.
Jon Skeet이 답변을 게시하면 아무도 새로운 답변을 게시 할 수 없습니다. – Baby
죄송합니다. . 그러나 제안 된 접근법 중 어느 것도 버그를 빠져 나가고 있으며 여전히 같은 오류를 내고 있습니다. JDK 7.0을 가지고 있다면 차이가 있습니까? – Sumod
@Sumod : 모든 답변이 * 정말 * 문제를 해결해야합니다. 마지막 접근 방법 (리소스 사용 시도)이 가장 깨끗하기 때문에 여기에 집중하는 것이 좋습니다. 코드를 표시하는 새로운 섹션과 정확한 오류 (정확한 코드를 표시하고 표시하지 않은 비트가 포함 된 다른 코드는 아닙니다)를 사용하여 질문을 편집하십시오. –