diff --git a/org.adempiere.base.process/src/org/adempiere/process/InOutGenerateRMA.java b/org.adempiere.base.process/src/org/adempiere/process/InOutGenerateRMA.java index c9e2dd4ac6..0d38d58f11 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/InOutGenerateRMA.java +++ b/org.adempiere.base.process/src/org/adempiere/process/InOutGenerateRMA.java @@ -97,13 +97,13 @@ public class InOutGenerateRMA extends SvrProcess + "AND T_Selection.AD_PInstance_ID=? "; PreparedStatement pstmt = null; - + ResultSet rs = null; try { pstmt = DB.prepareStatement(sql, get_TrxName()); pstmt.setInt(1, Env.getAD_Client_ID(getCtx())); pstmt.setInt(2, getAD_PInstance_ID()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); while (rs.next()) { @@ -116,14 +116,8 @@ public class InOutGenerateRMA extends SvrProcess } finally { - try - { - pstmt.close(); - } - catch (Exception ex) - { - log.log(Level.SEVERE, "Could not close prepared statement"); - } + DB.close(rs,pstmt); + rs = null;pstmt = null; } StringBuilder msgreturn = new StringBuilder("@Created@ = ").append(m_created); diff --git a/org.adempiere.base.process/src/org/adempiere/process/InvoiceGenerateRMA.java b/org.adempiere.base.process/src/org/adempiere/process/InvoiceGenerateRMA.java index 7cc1cb869f..c98e164533 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/InvoiceGenerateRMA.java +++ b/org.adempiere.base.process/src/org/adempiere/process/InvoiceGenerateRMA.java @@ -92,13 +92,13 @@ public class InvoiceGenerateRMA extends SvrProcess + "AND T_Selection.AD_PInstance_ID=? "; PreparedStatement pstmt = null; - + ResultSet rs = null; try { pstmt = DB.prepareStatement(sql, get_TrxName()); pstmt.setInt(1, Env.getAD_Client_ID(getCtx())); pstmt.setInt(2, getAD_PInstance_ID()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); while (rs.next()) { @@ -111,14 +111,8 @@ public class InvoiceGenerateRMA extends SvrProcess } finally { - try - { - pstmt.close(); - } - catch (Exception ex) - { - log.log(Level.SEVERE, "Could not close prepared statement"); - } + DB.close(rs,pstmt); + rs = null;pstmt = null; } StringBuilder msgreturn = new StringBuilder("@Created@ = ").append(m_created); return msgreturn.toString(); diff --git a/org.adempiere.base.process/src/org/adempiere/process/PrepareMigrationScripts.java b/org.adempiere.base.process/src/org/adempiere/process/PrepareMigrationScripts.java index 87de2cf3da..be2895227b 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/PrepareMigrationScripts.java +++ b/org.adempiere.base.process/src/org/adempiere/process/PrepareMigrationScripts.java @@ -85,21 +85,23 @@ public class PrepareMigrationScripts extends SvrProcess { .append(fileName.get(i)) .append("]. Finding out if the script has or hasn't been applied yet..."); log.fine(msglog.toString()); + PreparedStatement pstmt = null; + ResultSet rs = null; try { // First of all, check if the script hasn't been applied yet... String checkScript = "select ad_migrationscript_id from ad_migrationscript where name = ?"; - PreparedStatement pstmt = DB.prepareStatement(checkScript, this + pstmt = DB.prepareStatement(checkScript, this .get_TrxName()); pstmt.setString(1, fileName.get(i)); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { msglog = new StringBuilder("Script ").append(fileName.get(i)) .append(" already in the database"); log.warning(msglog.toString()); - pstmt.close(); continue; } - pstmt.close(); + DB.close(pstmt); + pstmt = null; // first use a Scanner to get each line Scanner scanner = new Scanner(dirList[i]); StringBuilder body = new StringBuilder(); @@ -213,7 +215,8 @@ public class PrepareMigrationScripts extends SvrProcess { pstmt.setTimestamp(15, ts); pstmt.setTimestamp(16, ts); int result = pstmt.executeUpdate(); - pstmt.close(); + DB.close(pstmt); + pstmt = null; if (result > 0) log.info("Header inserted. Now inserting the script body"); else { @@ -227,7 +230,8 @@ public class PrepareMigrationScripts extends SvrProcess { pstmt.setBytes(1, body.toString().getBytes()); pstmt.setInt(2, seqID); result = pstmt.executeUpdate(); - pstmt.close(); + DB.close(pstmt); + pstmt = null; if (result > 0) log.info("Script Body inserted."); else { @@ -245,6 +249,13 @@ public class PrepareMigrationScripts extends SvrProcess { } catch (Exception ex) { log.severe(ex.getMessage()); } + finally + { + DB.close(rs, pstmt); + rs = null; + pstmt = null; + } + } return "Sucess"; } diff --git a/org.adempiere.base.process/src/org/adempiere/process/UpdateRoleMenu.java b/org.adempiere.base.process/src/org/adempiere/process/UpdateRoleMenu.java index 10fe21634a..a42948d08d 100644 --- a/org.adempiere.base.process/src/org/adempiere/process/UpdateRoleMenu.java +++ b/org.adempiere.base.process/src/org/adempiere/process/UpdateRoleMenu.java @@ -80,11 +80,12 @@ public class UpdateRoleMenu extends SvrProcess String sqlStmt = "SELECT U_WebMenu_ID, IsActive FROM U_WebMenu"; PreparedStatement pstmt = null; + ResultSet rs = null; try { pstmt = DB.prepareStatement(sqlStmt, get_TrxName()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); while (rs.next()) { @@ -101,17 +102,9 @@ public class UpdateRoleMenu extends SvrProcess } finally { - if (pstmt != null) - { - try - { - pstmt.close(); - } - catch (Exception ex) - { - log.log(Level.SEVERE, "Could not close prepared statement"); - } - } + DB.close(rs, pstmt); + rs = null; + pstmt = null; } return "Role updated successfully"; diff --git a/org.adempiere.base.process/src/org/compiere/process/PaySelectionCreateFrom.java b/org.adempiere.base.process/src/org/compiere/process/PaySelectionCreateFrom.java index 6053851e81..7a5ca69882 100644 --- a/org.adempiere.base.process/src/org/compiere/process/PaySelectionCreateFrom.java +++ b/org.adempiere.base.process/src/org/compiere/process/PaySelectionCreateFrom.java @@ -225,7 +225,6 @@ public class PaySelectionCreateFrom extends SvrProcess PayAmt, PayAmt.subtract(DiscountAmt), DiscountAmt); if (!pselLine.save()) { - pstmt.close(); throw new IllegalStateException ("Cannot save MPaySelectionLine"); } } diff --git a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java index ef30ef1b9b..fabec25df4 100644 --- a/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java +++ b/org.adempiere.base/src/org/adempiere/util/ProcessUtil.java @@ -80,13 +80,13 @@ public final class ProcessUtil { public static boolean startDatabaseProcedure (ProcessInfo processInfo, String ProcedureName, Trx trx, boolean managedTrx) { String sql = "{call " + ProcedureName + "(?)}"; String trxName = trx != null ? trx.getTrxName() : null; + CallableStatement cstmt = null; try { //hengsin, add trx support, updateable support. - CallableStatement cstmt = DB.prepareCall(sql, ResultSet.CONCUR_UPDATABLE, trxName); + cstmt = DB.prepareCall(sql, ResultSet.CONCUR_UPDATABLE, trxName); cstmt.setInt(1, processInfo.getAD_PInstance_ID()); cstmt.executeUpdate(); - cstmt.close(); if (trx != null && trx.isActive() && managedTrx) { trx.commit(true); @@ -105,6 +105,8 @@ public final class ProcessUtil { } finally { + DB.close(cstmt); + cstmt = null; if (trx != null && managedTrx) trx.close(); } diff --git a/org.adempiere.base/src/org/compiere/db/CreateAdempiere.java b/org.adempiere.base/src/org/compiere/db/CreateAdempiere.java index 8e2d1564c3..6426535e76 100644 --- a/org.adempiere.base/src/org/compiere/db/CreateAdempiere.java +++ b/org.adempiere.base/src/org/compiere/db/CreateAdempiere.java @@ -749,9 +749,6 @@ public class CreateAdempiere log.finest("# " + no); } // - stmt.close(); - stmt = null; - // if (batch) conn.commit(); // @@ -774,17 +771,11 @@ public class CreateAdempiere msg += "\n=>" + cmd; log.log(Level.SEVERE, msg); } - // Error clean up - try + finally { - if (stmt != null) - stmt.close(); + DB.close(stmt); + stmt = null; } - catch (SQLException e1) - { - log.log(Level.SEVERE, "close statement", e1); - } - stmt = null; return false; } // execureCommands diff --git a/org.adempiere.base/src/org/compiere/db/StatementProxy.java b/org.adempiere.base/src/org/compiere/db/StatementProxy.java index 89dcc00bfd..1a1cc5a7cc 100644 --- a/org.adempiere.base/src/org/compiere/db/StatementProxy.java +++ b/org.adempiere.base/src/org/compiere/db/StatementProxy.java @@ -179,10 +179,7 @@ public class StatementProxy implements InvocationHandler { if (close) return; try { - if (p_stmt != null) - { - p_stmt.close(); - } + DB.close(p_stmt); } finally { if (m_conn != null) { @@ -194,6 +191,7 @@ public class StatementProxy implements InvocationHandler { {} } m_conn = null; + p_stmt = null; close = true; } } // close @@ -222,6 +220,9 @@ public class StatementProxy implements InvocationHandler { finally { DB.close(rs); + rs = null; + DB.close(rowSet); + rowSet = null; } return rowSet; } // local_getRowSet diff --git a/org.adempiere.base/src/org/compiere/model/MDepreciationConvention.java b/org.adempiere.base/src/org/compiere/model/MDepreciationConvention.java index 1f73dde4a5..f320202b2b 100644 --- a/org.adempiere.base/src/org/compiere/model/MDepreciationConvention.java +++ b/org.adempiere.base/src/org/compiere/model/MDepreciationConvention.java @@ -97,16 +97,11 @@ public class MDepreciationConvention extends X_A_Depreciation_Convention cs.setInt(6, Period); cs.execute(); retValue = cs.getBigDecimal(1); - cs.close(); } catch (Exception e) { log.log(Level.SEVERE, sql, e); } finally { - try { - if (cs != null) cs.close(); - } catch (SQLException e) { - log.log(Level.FINEST, "Error", e); - } + DB.close(cs); cs = null; } } diff --git a/org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java b/org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java index 7105a7c25f..7b570c5f5e 100644 --- a/org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java +++ b/org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java @@ -178,7 +178,6 @@ public class MDepreciationMethod extends X_A_Depreciation_Method cs.setInt(6, A_Asset_Acct_ID); cs.execute(); retValue = cs.getBigDecimal(1); - cs.close(); } catch (SQLException e) { diff --git a/org.adempiere.base/src/org/compiere/model/MElementValue.java b/org.adempiere.base/src/org/compiere/model/MElementValue.java index 1ad8f7b486..2c7b5ca682 100644 --- a/org.adempiere.base/src/org/compiere/model/MElementValue.java +++ b/org.adempiere.base/src/org/compiere/model/MElementValue.java @@ -20,6 +20,7 @@ import java.sql.ResultSet; import java.util.Properties; import org.adempiere.exceptions.AdempiereException; +import org.compiere.util.DB; import org.compiere.util.Env; /** @@ -223,16 +224,18 @@ public class MElementValue extends X_C_ElementValue // // Check Valid Combinations - teo_sarca FR [ 1883533 ] String whereClause = MAccount.COLUMNNAME_Account_ID+"=?"; - POResultSet rs = new Query(getCtx(), I_C_ValidCombination.Table_Name, whereClause, get_TrxName()) - .setParameters(get_ID()) - .scroll(); + POResultSet rs = null; try { + rs = new Query(getCtx(), I_C_ValidCombination.Table_Name, whereClause, get_TrxName()) + .setParameters(get_ID()) + .scroll(); while(rs.hasNext()) { rs.next().deleteEx(true); } } finally { - rs.close(); + DB.close(rs); + rs = null; } } return true; diff --git a/org.adempiere.base/src/org/compiere/model/MSequence.java b/org.adempiere.base/src/org/compiere/model/MSequence.java index d8873afa67..84c5582a12 100644 --- a/org.adempiere.base/src/org/compiere/model/MSequence.java +++ b/org.adempiere.base/src/org/compiere/model/MSequence.java @@ -177,14 +177,15 @@ public class MSequence extends X_AD_Sequence // get ID from http site retValue = getNextOfficialID_HTTP(TableName); if (retValue > 0) { - PreparedStatement updateSQL; - updateSQL = conn.prepareStatement("UPDATE AD_Sequence SET CurrentNextSys = ? + 1 WHERE AD_Sequence_ID = ?"); + PreparedStatement updateSQL = null; try { + updateSQL = conn.prepareStatement("UPDATE AD_Sequence SET CurrentNextSys = ? + 1 WHERE AD_Sequence_ID = ?"); updateSQL.setInt(1, retValue); updateSQL.setInt(2, AD_Sequence_ID); updateSQL.executeUpdate(); } finally { - updateSQL.close(); + DB.close(updateSQL); + updateSQL = null; } } gotFromHTTP = true; @@ -206,14 +207,15 @@ public class MSequence extends X_AD_Sequence // get ID from http site retValue = getNextProjectID_HTTP(TableName); if (retValue > 0) { - PreparedStatement updateSQL; - updateSQL = conn.prepareStatement("UPDATE AD_Sequence SET CurrentNext = GREATEST(CurrentNext, ? + 1) WHERE AD_Sequence_ID = ?"); + PreparedStatement updateSQL = null; try { + updateSQL = conn.prepareStatement("UPDATE AD_Sequence SET CurrentNext = GREATEST(CurrentNext, ? + 1) WHERE AD_Sequence_ID = ?"); updateSQL.setInt(1, retValue); updateSQL.setInt(2, AD_Sequence_ID); updateSQL.executeUpdate(); } finally { - updateSQL.close(); + DB.close(updateSQL); + updateSQL = null; } } gotFromHTTP = true; @@ -222,23 +224,25 @@ public class MSequence extends X_AD_Sequence } if (! gotFromHTTP) { - PreparedStatement updateSQL; - int incrementNo = rs.getInt(3); - if (adempiereSys) { - updateSQL = conn - .prepareStatement("UPDATE AD_Sequence SET CurrentNextSys = CurrentNextSys + ? WHERE AD_Sequence_ID = ?"); - retValue = rs.getInt(2); - } else { - updateSQL = conn - .prepareStatement("UPDATE AD_Sequence SET CurrentNext = CurrentNext + ? WHERE AD_Sequence_ID = ?"); - retValue = rs.getInt(1); - } - try { + PreparedStatement updateSQL = null; + try + { + int incrementNo = rs.getInt(3); + if (adempiereSys) { + updateSQL = conn + .prepareStatement("UPDATE AD_Sequence SET CurrentNextSys = CurrentNextSys + ? WHERE AD_Sequence_ID = ?"); + retValue = rs.getInt(2); + } else { + updateSQL = conn + .prepareStatement("UPDATE AD_Sequence SET CurrentNext = CurrentNext + ? WHERE AD_Sequence_ID = ?"); + retValue = rs.getInt(1); + } updateSQL.setInt(1, incrementNo); updateSQL.setInt(2, AD_Sequence_ID); updateSQL.executeUpdate(); } finally { - updateSQL.close(); + DB.close(updateSQL); + updateSQL = null; } } @@ -263,14 +267,10 @@ public class MSequence extends X_AD_Sequence finally { DB.close(rs, pstmt); - pstmt = null; - rs = null; - if (timeoutStatement != null){ - try { - timeoutStatement.close(); - }catch(Exception e){} - timeoutStatement = null; - } + pstmt = null;rs = null; + DB.close(timeoutStatement); + timeoutStatement = null; + if (conn != null) { try { @@ -478,6 +478,7 @@ public class MSequence extends X_AD_Sequence finally { DB.close(updateSQL); + updateSQL = null; } } else @@ -516,13 +517,12 @@ public class MSequence extends X_AD_Sequence finally { DB.close(rs, pstmt); + pstmt = null;rs = null; + DB.close(timeoutStatement); + timeoutStatement = null; // Finish try { - if (timeoutStatement != null) { - timeoutStatement.close(); - timeoutStatement = null; - } if (trx == null && conn != null) { conn.close(); conn = null; diff --git a/org.adempiere.base/src/org/compiere/report/FinReportJasper.java b/org.adempiere.base/src/org/compiere/report/FinReportJasper.java index 32f47dbc5c..b9b5c22d4f 100644 --- a/org.adempiere.base/src/org/compiere/report/FinReportJasper.java +++ b/org.adempiere.base/src/org/compiere/report/FinReportJasper.java @@ -85,18 +85,23 @@ public class FinReportJasper extends FinReport if (proc.getProcedureName() != null && proc.getProcedureName().length() > 0) { // execute on this thread/connection String sql = "{call " + proc.getProcedureName() + "(?)}"; + CallableStatement cstmt = null; try { - CallableStatement cstmt = DB.prepareCall(sql); // ro?? + cstmt = DB.prepareCall(sql); // ro?? cstmt.setInt(1, getAD_PInstance_ID()); cstmt.executeUpdate(); - cstmt.close(); } catch (Exception e) { log.log(Level.SEVERE, sql, e); poInfo.setSummary (Msg.getMsg(Env.getCtx(), "ProcessRunError") + " " + e.getLocalizedMessage()); } + finally + { + DB.close(cstmt); + cstmt = null; + } } // TODO - allow java class preprocess if the classname <> ProcessUtil.JASPER_STARTER_CLASS diff --git a/org.adempiere.base/src/org/compiere/util/DB.java b/org.adempiere.base/src/org/compiere/util/DB.java index 69282464a4..8bbf83a9a3 100644 --- a/org.adempiere.base/src/org/compiere/util/DB.java +++ b/org.adempiere.base/src/org/compiere/util/DB.java @@ -1056,6 +1056,7 @@ public final class DB } // Always close cursor close(cs); + cs = null; } return no; } // executeUpdate @@ -1121,9 +1122,8 @@ public final class DB } finally { - if (rs != null) - rs.getStatement().close(); - DB.close(rs); + close(rs.getStatement()); + close(rs);rs = null; } } timeoutStatement = conn.createStatement(); @@ -1134,12 +1134,8 @@ public final class DB } } catch (SQLException e) {} finally{ - if (timeoutStatement != null) { - try { - timeoutStatement.close(); - } catch (Exception e) {} - timeoutStatement = null; - } + DB.close(timeoutStatement); + timeoutStatement = null; } } else @@ -1193,15 +1189,12 @@ public final class DB } catch (SQLException e) { } finally{ - if (timeoutStatement != null) { - try { - timeoutStatement.close(); - } catch (Exception e) {} + close(timeoutStatement); timeoutStatement = null; - } } } - DB.close(cs); + close(cs); + cs = null; } return no; } diff --git a/org.adempiere.base/src/org/idempiere/fa/process/A_Asset_Addition_ProcessAll.java b/org.adempiere.base/src/org/idempiere/fa/process/A_Asset_Addition_ProcessAll.java index 42487e4cc7..c520847159 100644 --- a/org.adempiere.base/src/org/idempiere/fa/process/A_Asset_Addition_ProcessAll.java +++ b/org.adempiere.base/src/org/idempiere/fa/process/A_Asset_Addition_ProcessAll.java @@ -4,6 +4,7 @@ import org.compiere.model.MAssetAddition; import org.compiere.model.POResultSet; import org.compiere.model.Query; import org.compiere.process.SvrProcess; +import org.compiere.util.DB; /** @@ -21,11 +22,11 @@ public class A_Asset_Addition_ProcessAll extends SvrProcess // String whereClause = "AD_Client_ID=? AND IsActive=?" +" AND "+MAssetAddition.COLUMNNAME_Processed+"=?"; - POResultSet - rs = new Query(getCtx(), MAssetAddition.Table_Name, whereClause, get_TrxName()) - .setParameters(new Object[]{getAD_Client_ID(), "N", "N"}) - .scroll(); + POResultSet rs = null; try { + rs = new Query(getCtx(), MAssetAddition.Table_Name, whereClause, get_TrxName()) + .setParameters(new Object[]{getAD_Client_ID(), "N", "N"}) + .scroll(); while (rs.hasNext()) { MAssetAddition a = rs.next(); boolean ret = a.processIt(MAssetAddition.DOCACTION_Complete); @@ -36,7 +37,7 @@ public class A_Asset_Addition_ProcessAll extends SvrProcess } } finally { - rs.close(); rs = null; + DB.close(rs); rs = null; } // return "OK/Error: "+cnt_ok+"/"+cnt_err; diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java index a7369765d0..5308f18350 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java @@ -78,8 +78,8 @@ public class SQLStatementElementHandler extends AbstractElementHandler { int n = stmt.executeUpdate (sql); log.info("Executed SQL Statement for PostgreSQL: "+ getStringValue(element,"statement") + " ReturnValue="+n); } finally { - if (stmt != null) - stmt.close(); + DB.close(stmt); + stmt = null; } } @@ -105,6 +105,7 @@ public class SQLStatementElementHandler extends AbstractElementHandler { logImportDetail (ctx, impDetail, 0, "SQLStatement",1,"Execute"); } finally { DB.close(pstmt); + pstmt = null; } } diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/form/VSQLProcess.java b/org.adempiere.ui.swing/src/org/compiere/apps/form/VSQLProcess.java index 5119a63ba7..9d299c35ef 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/form/VSQLProcess.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/form/VSQLProcess.java @@ -232,26 +232,21 @@ public class VSQLProcess extends CPanel log.log(Level.SEVERE, "process statement: " + sql + " - " + e.toString()); result.append("===> ").append(e.toString()); } + finally + { + DB.close(stmt); + stmt = null; + try + { + conn.close(); + } + catch (SQLException e2) + { + log.log(Level.SEVERE, "processStatement - close connection", e2); + } + conn = null; + } - // Clean up - try - { - stmt.close(); - } - catch (SQLException e1) - { - log.log(Level.SEVERE, "processStatement - close statement", e1); - } - stmt = null; - try - { - conn.close(); - } - catch (SQLException e2) - { - log.log(Level.SEVERE, "processStatement - close connection", e2); - } - conn = null; // result.append(Env.NL); return result.toString(); diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/search/Find.java b/org.adempiere.ui.swing/src/org/compiere/apps/search/Find.java index 2b095892cb..f030f99075 100644 --- a/org.adempiere.ui.swing/src/org/compiere/apps/search/Find.java +++ b/org.adempiere.ui.swing/src/org/compiere/apps/search/Find.java @@ -779,14 +779,7 @@ public final class Find extends CDialog public void dispose() { log.config(""); - - // Find SQL - if (m_pstmt != null) - { - try { - m_pstmt.close(); - } catch (SQLException e) {} - } + DB.close(m_pstmt); m_pstmt = null; // Remove action listener from custom fields - teo_sarca [ 1709292 ] diff --git a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAccountDialog.java b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAccountDialog.java index 83b97b8eb4..94fe0fbb29 100644 --- a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAccountDialog.java +++ b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAccountDialog.java @@ -968,17 +968,22 @@ public final class VAccountDialog extends CDialog sql.append("'").append(f_Alias.getValue()).append("'"); sql.append(" WHERE C_ValidCombination_ID=").append(IDvalue); int i = 0; + PreparedStatement stmt = null; try { - java.sql.PreparedStatement stmt = DB.prepareStatement(sql.toString(), + stmt = DB.prepareStatement(sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, null); i = stmt.executeUpdate(); - stmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql.toString(), e); } + finally + { + DB.close(stmt); + stmt = null; + } if (i == 0) ADialog.error(m_WindowNo, this, "AccountNotUpdated"); } diff --git a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAssignment.java b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAssignment.java index 5a03c6ba58..e13f76437b 100644 --- a/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAssignment.java +++ b/org.adempiere.ui.swing/src/org/compiere/grid/ed/VAssignment.java @@ -188,8 +188,8 @@ public class VAssignment extends JComponent { try { - if (m_pstmt != null) - m_pstmt.close(); + DB.close(m_pstmt); + m_pstmt = null; } catch (Exception e) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WSQLProcess.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WSQLProcess.java index e75a87f2bd..b3232f2137 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WSQLProcess.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WSQLProcess.java @@ -238,26 +238,20 @@ public class WSQLProcess extends ADForm implements EventListener log.log(Level.SEVERE, "process statement: " + sql + " - " + exception); result.append("===> ").append(exception); } - - // Clean up - try + finally { - stmt.close(); - } - catch (SQLException e1) - { - log.log(Level.SEVERE, "processStatement - close statement", e1); - } - stmt = null; - try - { - conn.close(); - } - catch (SQLException e2) - { - log.log(Level.SEVERE, "processStatement - close connection", e2); - } - conn = null; + DB.close(stmt); + stmt = null; + try + { + conn.close(); + } + catch (SQLException e2) + { + log.log(Level.SEVERE, "processStatement - close connection", e2); + } + conn = null; + } // result.append(Env.NL); return result.toString(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index 51f73098ea..db1d016343 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -1789,15 +1789,9 @@ public class FindWindow extends Window implements EventListener, ValueCha log.config(""); // Find SQL - if (m_pstmt != null) - { - try { - m_pstmt.close(); - } catch (SQLException e) {} - } + DB.close(m_pstmt); m_pstmt = null; - - + // TargetFields if (m_targetFields != null) m_targetFields.clear(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java index b945c58488..4d48f6a9bd 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WAccountDialog.java @@ -956,17 +956,22 @@ public final class WAccountDialog extends Window sql.append("'").append(f_Alias.getValue()).append("'"); sql.append(" WHERE C_ValidCombination_ID=").append(IDvalue); int i = 0; + PreparedStatement stmt = null; try { - java.sql.PreparedStatement stmt = DB.prepareStatement(sql.toString(), + stmt = DB.prepareStatement(sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, null); i = stmt.executeUpdate(); - stmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql.toString(), e); } + finally + { + DB.close(stmt); + stmt = null; + } if (i == 0) FDialog.error(m_WindowNo, this, "AccountNotUpdated"); } diff --git a/org.adempiere.ui/src/org/compiere/apps/form/Match.java b/org.adempiere.ui/src/org/compiere/apps/form/Match.java index f753e05dda..3b604a5714 100644 --- a/org.adempiere.ui/src/org/compiere/apps/form/Match.java +++ b/org.adempiere.ui/src/org/compiere/apps/form/Match.java @@ -372,17 +372,23 @@ public class Match m_sql.toString(), "hdr", MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO) + m_groupBy; log.finest(sql); + Statement stmt = null; + ResultSet rs = null; try { - Statement stmt = DB.createStatement(); - ResultSet rs = stmt.executeQuery(sql); + stmt = DB.createStatement(); + rs = stmt.executeQuery(sql); table.loadTable(rs); - stmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql, e); } + finally + { + DB.close(rs,stmt); + rs = null;stmt = null; + } } // tableLoad /** diff --git a/org.compiere.db.postgresql.provider/src/org/compiere/db/DB_PostgreSQL.java b/org.compiere.db.postgresql.provider/src/org/compiere/db/DB_PostgreSQL.java index 2f9339f2f7..ea9f3e024e 100755 --- a/org.compiere.db.postgresql.provider/src/org/compiere/db/DB_PostgreSQL.java +++ b/org.compiere.db.postgresql.provider/src/org/compiere/db/DB_PostgreSQL.java @@ -831,10 +831,11 @@ public class DB_PostgreSQL implements AdempiereDatabase public static void dumpLocks(Connection conn) { Statement stmt = null; + ResultSet rs = null; try { String sql = "select pg_class.relname,pg_locks.* from pg_class,pg_locks where pg_class.relfilenode=pg_locks.relation order by 1"; stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(sql); + rs = stmt.executeQuery(sql); int cnt = rs.getMetaData().getColumnCount(); System.out.println(); while (rs.next()) @@ -852,10 +853,8 @@ public class DB_PostgreSQL implements AdempiereDatabase } catch (Exception e) { } finally { - try{ - if (stmt != null) - stmt.close(); - } catch (Exception e) {} + DB.close(rs,stmt); + rs = null;stmt = null; } } @@ -964,13 +963,24 @@ public class DB_PostgreSQL implements AdempiereDatabase finally { if (rs != null) - rs.getStatement().close(); + DB.close(rs.getStatement()); DB.close(rs); + rs = null; + } + + Statement timeoutStatement = null; + try + { + timeoutStatement = conn.createStatement(); + String sql = "SET " + (autoCommit ? "SESSION" : "LOCAL") + " statement_timeout TO " + ( timeOut > 0 ? Integer.toString(timeOut * 1000) : " DEFAULT "); + timeoutStatement.execute(sql); + } + finally + { + DB.close(timeoutStatement); + timeoutStatement = null; } - Statement timeoutStatement = conn.createStatement(); - String sql = "SET " + (autoCommit ? "SESSION" : "LOCAL") + " statement_timeout TO " + ( timeOut > 0 ? Integer.toString(timeOut * 1000) : " DEFAULT "); - timeoutStatement.execute(sql); if (log.isLoggable(Level.FINEST)) { log.finest("Set statement timeout to " + timeOut); @@ -1035,6 +1045,7 @@ public class DB_PostgreSQL implements AdempiereDatabase if(stmt!=null)setStatementTimeout(stmt.getConnection(), currentTimeout); } catch (SQLException e) {} DB.close(rs, stmt); + rs = null;stmt = null; } } return false; diff --git a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java index 678c764d29..47d926d85d 100644 --- a/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java +++ b/org.idempiere.webservices/WEB-INF/src/net/sf/compilo/data/DBDataSource.java @@ -228,14 +228,9 @@ public class DBDataSource extends compiereDataSource */ public void close() { - try - { - if(m_resultSet != null) - m_resultSet.close(); - - if(m_pstmt != null) - m_pstmt.close(); - } - catch (Exception e){} + DB.close(m_resultSet); + m_resultSet = null; + DB.close(m_pstmt); + m_pstmt = null; } }