From 97b02765d0528f1c03c42597cfefe36f0c3a9d09 Mon Sep 17 00:00:00 2001 From: Parshad Patel Date: Thu, 25 Jul 2019 17:00:08 +0900 Subject: Add fix for NullPointerException in epsdk-analytics A "NullPointerException" could be thrown; "con" is nullable here Rename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$ Issue-ID: PORTAL-562 Change-Id: Ic5ab68b1b1dc74b1bdf906bb1d9e743806c4df90 Signed-off-by: Parshad Patel --- .../onap/portalsdk/analytics/system/DbUtils.java | 98 ++++++++++++---------- 1 file changed, 56 insertions(+), 42 deletions(-) (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org') diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java index 1f58ada3..67acdf9e 100644 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java @@ -88,7 +88,9 @@ public class DbUtils { Connection con = null; try { con = getConnection(); - con.setAutoCommit(false); + if(con != null) { + con.setAutoCommit(false); + } } catch (final Exception ex2) { logger.warn("Failed to start Transaction", ex2); throw new ReportSQLException(ex2.getMessage(), ex2.getCause()); @@ -120,19 +122,21 @@ public class DbUtils { String result = null; try { - if (con.isClosed()) { + if (con == null || con.isClosed()) { con = getConnection(); } logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Call] " + sql)); - try (final CallableStatement stmt = con.prepareCall(sql)) { - if (expectResult) { - stmt.registerOutParameter(1, Types.CHAR); + if (con != null) { + try (final CallableStatement stmt = con.prepareCall(sql)) { + if (expectResult) { + stmt.registerOutParameter(1, Types.CHAR); + } + stmt.executeUpdate(); + if (expectResult) { + result = stmt.getString(1); + } + con.commit(); } - stmt.executeUpdate(); - if (expectResult) { - result = stmt.getString(1); - } - con.commit(); } } catch (final SQLException e) { logger.warn("Failed to execute Call", e); @@ -153,12 +157,14 @@ public class DbUtils { public static int executeUpdate(final Connection con, final String sql) throws ReportSQLException { int rcode = -1; - try (Statement stmt = con.createStatement()) { - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Update] " + sql)); - rcode = stmt.executeUpdate(sql); - } catch (final SQLException e) { - logger.warn("Failed to execute Update", e); - throw new ReportSQLException(e.getMessage(), sql); + if (con != null) { + try (Statement stmt = con.createStatement()) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Update] " + sql)); + rcode = stmt.executeUpdate(sql); + } catch (final SQLException e) { + logger.warn("Failed to execute Update", e); + throw new ReportSQLException(e.getMessage(), sql); + } } return rcode; } // executeUpdate @@ -166,7 +172,7 @@ public class DbUtils { public static int executeUpdate(final String sql) throws ReportSQLException { try (final Connection con = getConnection()) { final int rcode = executeUpdate(con, sql); - if ("oracle".equals(Globals.getDBType())) { + if (con != null && "oracle".equals(Globals.getDBType())) { con.commit(); } return rcode; @@ -182,43 +188,49 @@ public class DbUtils { public static DataSet executeQuery(Connection con, final String sql, final int maxRowLimit) throws ReportSQLException { + DataSet ds = null; try { if (con.isClosed()) { con = getConnection(); } - //con. - try (final Statement stmt = con.createStatement(); - final ResultSet rs = stmt.executeQuery(sql)) { - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); - return new DataSet(rs, maxRowLimit); + if (con != null) { + try (final Statement stmt = con.createStatement(); + final ResultSet rs = stmt.executeQuery(sql)) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); + ds = new DataSet(rs, maxRowLimit); + } } } catch (final SQLException e) { logger.warn("Failed to execute Query", e); throw new ReportSQLException(e.getMessage(), sql); } + return ds; } // executeQuery public static DataSet executeQuery(final String sql, final String reportName, final String reportID) throws ReportSQLException { - - try (final Connection con = getConnection(); - final PreparedStatement preparedStatement = con.prepareStatement(sql);) { - - if (StringUtils.isNotBlank(reportID)) { - preparedStatement.setString(1, reportID); - preparedStatement.setString(2, reportName); - } else { - preparedStatement.setString(1, reportName); - } - - try (final ResultSet rs = preparedStatement.executeQuery();) { - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); - return new DataSet(rs, Integer.MAX_VALUE); + DataSet ds = null; + try (final Connection con = getConnection();) { + if (con != null) { + try (final PreparedStatement preparedStatement = con.prepareStatement(sql);) { + if (StringUtils.isNotBlank(reportID)) { + preparedStatement.setString(1, reportID); + preparedStatement.setString(2, reportName); + } else { + preparedStatement.setString(1, reportName); + } + + try (final ResultSet rs = preparedStatement.executeQuery();) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); + ds = new DataSet(rs, Integer.MAX_VALUE); + } + } } } catch (final Exception e) { logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql), e); throw new ReportSQLException(e.getMessage(), e.getCause()); } + return ds; } // executeQuery public static DataSet executeQuery(final String sql) throws ReportSQLException { @@ -245,21 +257,23 @@ public class DbUtils { try (final Connection con = ConnectionUtils.getConnection(rr.getDBInfo());) { final String wholeSql = rr.getWholeSQL(); final DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination(); - String date_ColId = dc.getColId(); + String dateColId = dc.getColId(); final String dataFormat = dc.getColFormat(); if (dataFormat != null && dataFormat.length() > 0) { - date_ColId = "to_date(" + date_ColId + ", '" + dataFormat + "')"; + dateColId = "to_date(" + dateColId + ", '" + dataFormat + "')"; } String sql = ""; if (dateOption == 1) { - sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM')) from (" + wholeSql + ")"; + sql = "select count(distinct to_char(" + dateColId + ", 'YYYY/MM')) from (" + wholeSql + ")"; } else if (dateOption == 3) { - sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM/DD')) from (" + wholeSql + ")"; + sql = "select count(distinct to_char(" + dateColId + ", 'YYYY/MM/DD')) from (" + wholeSql + ")"; } else if (dateOption == 2) { - sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY')) from (" + wholeSql + ")"; + sql = "select count(distinct to_char(" + dateColId + ", 'YYYY')) from (" + wholeSql + ")"; } final DataSet ds = executeQuery(con, sql); - rowCount = ds.getInt(0, 0); + if(ds != null) { + rowCount = ds.getInt(0, 0); + } } catch (final Exception ex1) { logger.warn("Failed to execute Query", ex1); } -- cgit 1.2.3-korg