summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java
diff options
context:
space:
mode:
authorVasyl Razinkov <vasylrazinkov@sidero.ie>2019-05-20 16:19:57 +0100
committervasraz <vasyl.razinkov@est.tech>2019-07-16 14:52:27 +0100
commitf55fa6a1f3c427ff035970635aedaec16c0de4f1 (patch)
treeea58389563b6468964096f94f299acf5320722f4 /ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java
parent7d7b74d4d92e7fa45471fb0e8678837f71da3d02 (diff)
Fixed Sonar "Blocker Bugs"
Fixed potential "thread-Leak" Change-Id: I7efcbd4d7b6b69ca1f234bed8d28cbb8e51e3e25 Signed-off-by: Vasyl Razinkov <vasylrazinkov@sidero.ie> Issue-ID: PORTAL-584
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java193
1 files changed, 91 insertions, 102 deletions
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 d2a97dfe..1f58ada3 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
@@ -33,7 +33,7 @@
*
* ============LICENSE_END============================================
*
- *
+ *
*/
package org.onap.portalsdk.analytics.system;
@@ -44,9 +44,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
-
import javax.sql.DataSource;
-
import org.apache.commons.lang3.StringUtils;
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
@@ -61,28 +59,28 @@ public class DbUtils {
private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DbUtils.class);
- private static DataSource dataSource;
+ private DataSource dataSource;
- public DbUtils() {}
+ public DbUtils() {
+ }
public static Connection getConnection() throws ReportSQLException {
try {
return AppUtils.getDatasource().getConnection();
- } catch (SQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex));
+ } catch (final SQLException ex) {
+ logger.warn("Failed to get Connection", ex);
}
return null;
} // getConnection
- public static void clearConnection(Connection con) throws ReportSQLException {
+ public static void clearConnection(final Connection con) throws ReportSQLException {
try {
if ((con != null) && !con.isClosed()) {
Globals.getDbUtils().clearConnection(con);
}
- } catch (SQLException ex) {
+ } catch (final Exception ex) {
+ logger.warn("Failed to clear Connection", ex);
throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
- throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // clearConnection
@@ -91,52 +89,53 @@ public class DbUtils {
try {
con = getConnection();
con.setAutoCommit(false);
-
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to start Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
return con;
} // startTransaction
- public static void commitTransaction(Connection con) throws ReportSQLException {
+ public static void commitTransaction(final Connection con) throws ReportSQLException {
try {
con.commit();
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to commit Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // commitTransaction
- public static void rollbackTransaction(Connection con) throws ReportSQLException {
+ public static void rollbackTransaction(final Connection con) throws ReportSQLException {
try {
con.rollback();
clearConnection(con);
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to rollback Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // rollbackTransaction
- public static String executeCall(Connection con, String sql, boolean expectResult) throws ReportSQLException {
+ public static String executeCall(Connection con, final String sql, final boolean expectResult)
+ throws ReportSQLException {
String result = null;
try {
- if (con.isClosed())
+ if (con.isClosed()) {
con = getConnection();
+ }
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Call] " + sql));
- try (CallableStatement stmt = con.prepareCall(sql)) {
- if (expectResult)
+ try (final CallableStatement stmt = con.prepareCall(sql)) {
+ if (expectResult) {
stmt.registerOutParameter(1, Types.CHAR);
+ }
stmt.executeUpdate();
- if (expectResult)
+ if (expectResult) {
result = stmt.getString(1);
+ }
con.commit();
}
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Call", e);
throw new ReportSQLException(e.getMessage(), sql);
} finally {
clearConnection(con);
@@ -145,60 +144,66 @@ public class DbUtils {
return result;
} // executeCall
- public static String executeCall(String sql, boolean expectResult) throws RaptorException {
+ public static String executeCall(final String sql, final boolean expectResult)
+ throws RaptorException {
Connection con = null;
con = getConnection();
- String result = executeCall(con, sql, expectResult);
- return result;
+ return executeCall(con, sql, expectResult);
} // executeCall
- public static int executeUpdate(Connection con, String sql) throws ReportSQLException {
+ 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 (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Update", e);
throw new ReportSQLException(e.getMessage(), sql);
}
return rcode;
} // executeUpdate
- public static int executeUpdate(String sql) throws ReportSQLException {
- Connection con = null;
- try {
- con = getConnection();
- int rcode = executeUpdate(con, sql);
- if (Globals.getDBType().equals("oracle"))
+ 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())) {
con.commit();
-
+ }
return rcode;
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Update", e);
throw new ReportSQLException(e.getMessage(), sql);
- } finally {
- clearConnection(con);
}
} // executeUpdate
- public static DataSet executeQuery(Connection con, String sql) throws ReportSQLException {
+ public static DataSet executeQuery(final Connection con, final String sql) throws ReportSQLException {
return executeQuery(con, sql, Integer.MAX_VALUE);
} // executeQuery
- public static DataSet executeQuery(Connection con, String sql, int maxRowLimit) throws ReportSQLException {
+ public static DataSet executeQuery(Connection con, final String sql, final int maxRowLimit)
+ throws ReportSQLException {
try {
- if (con.isClosed())
+ if (con.isClosed()) {
con = getConnection();
- // con.
- try (Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql)) {
+ }
+ //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);
}
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Query", e);
throw new ReportSQLException(e.getMessage(), sql);
}
} // executeQuery
- public static DataSet executeQuery(String sql, String reportName, String reportID) throws ReportSQLException {
- try (Connection con = getConnection(); PreparedStatement preparedStatement = con.prepareStatement(sql);) {
+ 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);
@@ -206,95 +211,79 @@ public class DbUtils {
preparedStatement.setString(1, reportName);
}
- try (ResultSet rs = preparedStatement.executeQuery();) {
+ try (final ResultSet rs = preparedStatement.executeQuery();) {
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql));
return new DataSet(rs, Integer.MAX_VALUE);
}
- } catch (SQLException e) {
- throw new ReportSQLException(e.getMessage(), sql);
- } catch (ReportSQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql));
- throw new ReportSQLException(ex.getMessage(), ex);
- } catch (Exception ex1) {
- throw new ReportSQLException(ex1.getMessage(), ex1.getCause());
+ } catch (final Exception e) {
+ logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql), e);
+ throw new ReportSQLException(e.getMessage(), e.getCause());
}
} // executeQuery
- public static DataSet executeQuery(String sql) throws ReportSQLException {
+ public static DataSet executeQuery(final String sql) throws ReportSQLException {
return executeQuery(sql, Integer.MAX_VALUE);
} // executeQuery
- public static DataSet executeQuery(String sql, int maxRowLimit) throws ReportSQLException {
- Connection con = null;
- try {
- con = getConnection();
+ public static DataSet executeQuery(final String sql, final int maxRowLimit) throws ReportSQLException {
+ try (final Connection con = getConnection()) {
return executeQuery(con, sql, maxRowLimit);
- } catch (ReportSQLException ex) {
+ } catch (final ReportSQLException ex) {
logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql));
throw new ReportSQLException(ex.getMessage(), ex);
- } catch (Exception ex1) {
+ } catch (final Exception ex1) {
+ logger.warn("Failed to execute Query", ex1);
throw new ReportSQLException(ex1.getMessage(), ex1.getCause());
- } finally {
- clearConnection(con);
}
} // executeQuery
- // For ZK Support
+ //For ZK Support
- public static int executeQuery(ReportRuntime rr, int dateOption) {
- Connection con = null;
- int rowCount = 0;
- try {
- con = ConnectionUtils.getConnection(rr.getDBInfo());
- String wholeSql = rr.getWholeSQL();
+ public static int executeQuery(final ReportRuntime rr, final int dateOption) {
- DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination();
+ int rowCount = 0;
+ try (final Connection con = ConnectionUtils.getConnection(rr.getDBInfo());) {
+ final String wholeSql = rr.getWholeSQL();
+ final DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination();
String date_ColId = dc.getColId();
- String dataFormat = dc.getColFormat();
- if (dataFormat != null && dataFormat.length() > 0)
+ final String dataFormat = dc.getColFormat();
+ if (dataFormat != null && dataFormat.length() > 0) {
date_ColId = "to_date(" + date_ColId + ", '" + dataFormat + "')";
+ }
String sql = "";
- if (dateOption == 1)
+ if (dateOption == 1) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM')) from (" + wholeSql + ")";
- else if (dateOption == 3)
+ } else if (dateOption == 3) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM/DD')) from (" + wholeSql + ")";
- else if (dateOption == 2)
+ } else if (dateOption == 2) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY')) from (" + wholeSql + ")";
- DataSet ds = executeQuery(con, sql.toString());
- rowCount = ds.getInt(0, 0);
- } catch (ReportSQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex));
- } catch (Exception ex1) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex1));
- } finally {
- try {
- clearConnection(con);
- } catch (ReportSQLException ex2) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex2));
}
+ final DataSet ds = executeQuery(con, sql);
+ rowCount = ds.getInt(0, 0);
+ } catch (final Exception ex1) {
+ logger.warn("Failed to execute Query", ex1);
}
return rowCount;
}
- public String nvl(String s) {
+ public static String nvls(final String s) {
return (s == null) ? "" : s;
}
- public static String nvls(String s) {
- return (s == null) ? "" : s;
+ public static String nvl(final String s, final String sDefault) {
+ return nvls(s).isEmpty() ? sDefault : s;
}
- public static String nvl(String s, String sDefault) {
- return nvls(s).equals("") ? sDefault : s;
+ public String nvl(final String s) {
+ return (s == null) ? "" : s;
}
- public static DataSource getDataSource() {
+ public DataSource getDataSource() {
return dataSource;
}
@Autowired
- public void setDataSource(DataSource dataSource) {
- dataSource = dataSource;
+ public void setDataSource(final DataSource dataSource) {
+ this.dataSource = dataSource;
}
-
} // DbUtils