java - findbugs 显示 sessionFactory 为 null 保证被取消引用

标签 java findbugs

在我的应用程序中,我使用 session 工厂创建一个 session 。 当我执行此检查时,FindBug 会向我显示一条警告:“sessionFactory 为 null 保证被取消引用”。怎么解决这个问题?

  if (!sessionFactory.isClosed()) {
            session.close();
            sessionFactory.close();
       }

最佳答案

整个代码可能看起来像这样

SessionFactory sessionFactory = null;
Session session = null;

try{
    do some stuff
catch(Exception e){

} finally {
  if (!sessionFactory.isClosed()) {
            session.close();
            sessionFactory.close();
       }
}

Findbugs 发现您的变量一开始就为 null,如果您的 try block 中存在异常,则变量可能尚未初始化。因此它给出了一个错误。 通过添加空检查很容易解决:

  if (sessionFactory!= null && !sessionFactory.isClosed()) {
            if(session != null){
             session.close();
            }
            sessionFactory.close();
       }

关于java - findbugs 显示 sessionFactory 为 null 保证被取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643327/

相关文章:

java - getDeclaredMethod 不断给出 NoSuchMethodException

java - FindUnrelatedTypesInGenericContainer 错误示例

java - Android Studio 有单独的 FindBugs 插件吗?

java - 如何在 Findbugs 中使用 Checker Framework 注释?

java - TomEE war 部署失败

java - 如何本地化 Java Calendar 类?

java - Glassfish 服务器中的记录器错误

java - MySQLSyntaxError 插入 MySQL 数据库

Sonar Qube - "The class ' .. .' could not be matched to its original source file."

java - Maven + Sonar + Findbugs : Findbugs needs sources to be compiled