Я использовал инструмент FindBugs в одном из моих файлов Java и получил ниже упомянутое сообщение об ошибке от инструмента.
Я действительно обнаружил упомянутую проблему при запуске моего приложения. Я разместил это на Получение драйвера TDS - java.lang.NullPointerException. это исключение не соответствует .
Я не могу понять, почему это происходит.
1.) Метод com.vtech.tdpms.dao.ClientAuthenticationDAO.authenticateClient (InputBean) может не выполнить очистку java.sql.ResultSet
Обязательство по очистке ресурса, созданного в ClientAuthenticationDAO.java:[line 44], не выполняется
Тип ссылки java.sql.ResultSet
1 экземпляр тип обязательства остается
Путь продолжается в ClientAuthenticationDAO.java:[line 45]
Путь продолжается в ClientAuthenticationDAO.java:[line 46]
Путь продолжается в ClientAuthenticationDAO.java:[line 61]
Остальные обязательства: {ведомость x 1, ResultSet x 1}
2.) Метод com.vtech.tdpms.dao.ClientAuthenticationDAO.authenticateClient (InputBean) может не выполнить очистку java.sql.Statement
Обязательство по очистке ресурса, созданного в ClientAuthenticationDAO.java:[line 38], не выполняется
Тип ссылки java.sql.Statement
1 экземпляр тип обязательства остается
Путь продолжается в ClientAuthenticationDAO.java:[line 39]
Путь продолжается в ClientAuthenticationDAO.java:[line 40]
Путь продолжается в ClientAuthenticationDAO.java:[line 41]
Путь продолжается в ClientAuthenticationDAO.java:[line 42]
Путь продолжается в ClientAuthenticationDAO.java:[line 43]
Путь продолжается в ClientAuthenticationDAO.java:[line 44]
Путь продолжается в ClientAuthenticationDAO.java:[line 45]
Путь продолжается в ClientAuthenticationDAO.java:[line 46]
Путь продолжается в ClientAuthenticationDAO.java:[line 61]
Остальные обязательства: {ведомость x 1, ResultSet x 1}
Java-код -
public class ClientAuthenticationDAO extends DAOUtil {
private static LogManager LOG = new LogManager(ClientAuthenticationDAO.class);
public boolean authenticateClient(InputBean objInputBean) throws SQLException { // line 30
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
boolean isAuthenticationSuccess = false;
try {
conn = getConnection();
ps = conn.prepareStatement(ClientAuthenticationQueryUtil.AUTHENTICATE_CLIENT); // line 38
ps.setString(1, objInputBean.getUsername()); // line 39
ps.setString(2, objInputBean.getPassword()); // line 40
ps.setString(3, objInputBean.getCompanyCode()); // line 41
rs = ps.executeQuery(); // line 42
while(rs.next()) { // line 44
if(GenTools.isEmpty(objInputBean.getClientId())){ // line 45
objInputBean.setClientId(rs.getString("login_xid")); // line 46
}
objInputBean.setAdminId(rs.getInt("admin_id"));
objInputBean.setLoginUserPID(rs.getInt("login_user_pid"));
objInputBean.setUserType(rs.getString("user_type"));
isAuthenticationSuccess = true;
}
} catch (SQLException sqlExp) {
sqlExp.printStackTrace();
LOG.fatal(sqlExp);
throw sqlExp;
} finally {
DataBaseUtil.close(conn, ps, rs);
}
return isAuthenticationSuccess;
}
}