我有以下代码。 SonarLint说套接字应该在finally块中关闭。
但我已经关闭了它。 我在这里观察到的另一件事是:只有在finally if条件中有serverSocket.isClosed()条件时才会得到这个。如果我删除它,问题就解决了。
在这里,我想知道这个条件的问题是什么,因为sonarLint无法识别套接字关闭。
ServerSocket serverSocket = null;
try
{
serverSocket = new ServerSocket(5555);
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(serverSocket != null && !serverSocket.isClosed())
{
try
{
serverSocket.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
因为这个:<xsl:template match="/">
<root>
<xsl:variable name="maintext" select="replace(replace(/root/a, '\.', '. '), '-', '- ')"/>
<a><xsl:value-of select="tokenize($maintext, ' ')[position() != last()]"/></a>
<b><xsl:value-of select="tokenize($maintext, ' ')[last()]"/></b>
</root>
</xsl:template>
您正在使用if(serverSocket != null &&
语句并检查 NOT NULL AND 中的serverSocket
这里的问题是if
不为空,然后serverSocket
运算符不会让下一个条件执行,&&
语句不会执行,最终连接不会关闭。