diff --git a/base/src/org/compiere/model/ProductCost.java b/base/src/org/compiere/model/ProductCost.java index f539a4f7ac..0de8df274a 100644 --- a/base/src/org/compiere/model/ProductCost.java +++ b/base/src/org/compiere/model/ProductCost.java @@ -16,12 +16,16 @@ *****************************************************************************/ package org.compiere.model; -import java.math.*; -import java.sql.*; -import java.util.*; -import java.util.logging.*; +import java.math.BigDecimal; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Properties; +import java.util.logging.Level; -import org.compiere.util.*; +import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.Env; /** * Product Cost Model. @@ -158,21 +162,25 @@ public class ProductCost + "WHERE M_Product_ID=? AND C_AcctSchema_ID=?"; // int validCombination_ID = 0; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, m_M_Product_ID); pstmt.setInt(2, as.getC_AcctSchema_ID()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) validCombination_ID = rs.getInt(AcctType); - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql, e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } if (validCombination_ID == 0) return null; return MAccount.get(as.getCtx(), validCombination_ID); @@ -200,20 +208,24 @@ public class ProductCost + "ORDER BY pc.IsDefault DESC, pc.Created"; // int validCombination_ID = 0; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, as.getC_AcctSchema_ID()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) validCombination_ID = rs.getInt(AcctType); - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql, e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } if (validCombination_ID == 0) return null; return MAccount.get(as.getCtx(), validCombination_ID); @@ -296,24 +308,28 @@ public class ProductCost sql.append("COSTSTANDARD"); sql.append(" FROM M_Product_Costing WHERE M_Product_ID=? AND C_AcctSchema_ID=?"); + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql.toString(), null); + pstmt = DB.prepareStatement(sql.toString(), null); pstmt.setInt(1, m_M_Product_ID); pstmt.setInt(2, as.getC_AcctSchema_ID()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { current = rs.getBigDecimal(1); cost = rs.getBigDecimal(2); } - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql.toString(), e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } // Return Costs if (costType != null && cost != null && !cost.equals(Env.ZERO)) @@ -415,11 +431,13 @@ public class ProductCost BigDecimal PriceList = null; BigDecimal PriceStd = null; BigDecimal PriceLimit = null; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql.toString(), null); + pstmt = DB.prepareStatement(sql.toString(), null); pstmt.setInt(1, m_M_Product_ID); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { C_Currency_ID = rs.getInt(1); @@ -427,13 +445,15 @@ public class ProductCost PriceStd = rs.getBigDecimal(3); PriceLimit = rs.getBigDecimal(4); } - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql.toString(), e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } // nothing found if (C_Currency_ID == 0) return null; @@ -466,11 +486,13 @@ public class ProductCost BigDecimal PriceList = null; BigDecimal PricePO = null; BigDecimal PriceLastPO = null; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, m_M_Product_ID); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { C_Currency_ID = rs.getInt(1); @@ -478,13 +500,15 @@ public class ProductCost PricePO = rs.getBigDecimal(3); PriceLastPO = rs.getBigDecimal(4); } - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, sql, e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } // nothing found if (C_Currency_ID == 0) return null; diff --git a/base/src/org/compiere/model/Tax.java b/base/src/org/compiere/model/Tax.java index 55a025b3ce..a5bd86bf3e 100644 --- a/base/src/org/compiere/model/Tax.java +++ b/base/src/org/compiere/model/Tax.java @@ -16,10 +16,18 @@ *****************************************************************************/ package org.compiere.model; -import java.sql.*; -import java.util.*; -import java.util.logging.*; -import org.compiere.util.*; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.Properties; +import java.util.logging.Level; + +import org.compiere.util.CLogMgt; +import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; /** * Tax Handling @@ -111,7 +119,6 @@ public class Tax log.warning("No Warehouse - C_Charge_ID=" + C_Charge_ID); return 0; } - String variable = ""; int C_TaxCategory_ID = 0; int shipFromC_Location_ID = 0; int shipToC_Location_ID = 0; @@ -130,15 +137,17 @@ public class Tax + " AND il.C_BPartner_Location_ID=?" + " AND w.M_Warehouse_ID=?" + " AND sl.C_BPartner_Location_ID=?"; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement (sql, null); + pstmt = DB.prepareStatement (sql, null); pstmt.setInt (1, C_Charge_ID); pstmt.setInt (2, AD_Org_ID); pstmt.setInt (3, billC_BPartner_Location_ID); pstmt.setInt (4, M_Warehouse_ID); pstmt.setInt (5, shipC_BPartner_Location_ID); - ResultSet rs = pstmt.executeQuery (); + rs = pstmt.executeQuery (); boolean found = false; if (rs.next ()) { @@ -150,8 +159,7 @@ public class Tax shipToC_Location_ID = rs.getInt (6); found = true; } - rs.close (); - pstmt.close (); + DB.close(rs, pstmt); // if (!found) { @@ -169,6 +177,10 @@ public class Tax log.log(Level.SEVERE, sql, e); return 0; } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } // Reverese for PO if (!IsSOTrx) @@ -230,6 +242,8 @@ public class Tax int billToC_Location_ID = 0; String IsTaxExempt = null; + PreparedStatement pstmt = null; + ResultSet rs = null; try { // Get all at once @@ -243,13 +257,13 @@ public class Tax + " AND il.C_BPartner_Location_ID=?" + " AND w.M_Warehouse_ID=?" + " AND sl.C_BPartner_Location_ID=?"; - PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, M_Product_ID); pstmt.setInt(2, AD_Org_ID); pstmt.setInt(3, billC_BPartner_Location_ID); pstmt.setInt(4, M_Warehouse_ID); pstmt.setInt(5, shipC_BPartner_Location_ID); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); boolean found = false; if (rs.next()) { @@ -261,8 +275,7 @@ public class Tax shipToC_Location_ID = rs.getInt(6); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); // if (found && "Y".equals(IsTaxExempt)) { @@ -307,8 +320,7 @@ public class Tax C_TaxCategory_ID = rs.getInt(1); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); if (C_TaxCategory_ID == 0) { log.saveError("TaxCriteriaNotFound", Msg.translate(ctx, variable) @@ -330,8 +342,7 @@ public class Tax billFromC_Location_ID = rs.getInt (1); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); if (billFromC_Location_ID == 0) { log.saveError("TaxCriteriaNotFound", Msg.translate(Env.getAD_Language(ctx), variable) @@ -354,8 +365,7 @@ public class Tax IsTaxExempt = rs.getString(2); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); if (billToC_Location_ID == 0) { log.saveError("TaxCriteriaNotFound", Msg.translate(Env.getAD_Language(ctx), variable) @@ -390,8 +400,7 @@ public class Tax shipFromC_Location_ID = rs.getInt (1); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); if (shipFromC_Location_ID == 0) { log.saveError("TaxCriteriaNotFound", Msg.translate(Env.getAD_Language(ctx), variable) @@ -412,8 +421,7 @@ public class Tax shipToC_Location_ID = rs.getInt (1); found = true; } - rs.close(); - pstmt.close(); + DB.close(rs, pstmt); if (shipToC_Location_ID == 0) { log.saveError("TaxCriteriaNotFound", Msg.translate(Env.getAD_Language(ctx), variable) @@ -435,6 +443,12 @@ public class Tax { log.log(Level.SEVERE, "getProduct (" + variable + ")", e); } + finally + { + DB.close(rs); + DB.close(pstmt); + rs = null; pstmt = null; + } return get (ctx, C_TaxCategory_ID, IsSOTrx, shipDate, shipFromC_Location_ID, shipToC_Location_ID, @@ -456,23 +470,27 @@ public class Tax + "WHERE t.IsTaxExempt='Y' AND o.AD_Org_ID=? " + "ORDER BY t.Rate DESC"; boolean found = false; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql, null); + pstmt = DB.prepareStatement(sql, null); pstmt.setInt(1, AD_Org_ID); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { C_Tax_ID = rs.getInt (1); found = true; } - rs.close(); - pstmt.close(); } catch (SQLException e) { log.log(Level.SEVERE, "getExemptTax", e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } log.fine("getExemptTax - TaxExempt=Y - C_Tax_ID=" + C_Tax_ID); if (C_Tax_ID == 0) log.saveError("TaxCriteriaNotFound", Msg.getMsg(ctx, "TaxNoExemptFound") diff --git a/base/src/org/compiere/util/Env.java b/base/src/org/compiere/util/Env.java index 391573b893..e5931c40ad 100644 --- a/base/src/org/compiere/util/Env.java +++ b/base/src/org/compiere/util/Env.java @@ -961,10 +961,12 @@ public final class Env boolean isSystemLanguage = false; ArrayList AD_Languages = new ArrayList(); String sql = "SELECT DISTINCT AD_Language FROM AD_Message_Trl"; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = DB.prepareStatement(sql, null); - ResultSet rs = pstmt.executeQuery(); + pstmt = DB.prepareStatement(sql, null); + rs = pstmt.executeQuery(); while (rs.next()) { String AD_Language = rs.getString(1); @@ -975,13 +977,15 @@ public final class Env } AD_Languages.add(AD_Language); } - rs.close(); - pstmt.close(); } catch (SQLException e) { s_log.log(Level.SEVERE, "", e); } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } // Found it if (isSystemLanguage) return; diff --git a/base/src/org/compiere/util/Msg.java b/base/src/org/compiere/util/Msg.java index 16b1987ddb..3982f4714e 100644 --- a/base/src/org/compiere/util/Msg.java +++ b/base/src/org/compiere/util/Msg.java @@ -108,9 +108,10 @@ public final class Msg s_log.log(Level.SEVERE, "No DB Connection"); return null; } + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = null; if (AD_Language == null || AD_Language.length() == 0 || Env.isBaseLanguage(AD_Language, "AD_Language")) pstmt = DB.prepareStatement("SELECT Value, MsgText, MsgTip FROM AD_Message", null); else @@ -121,7 +122,7 @@ public final class Msg + " AND t.AD_Language=?", null); pstmt.setString(1, AD_Language); } - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); // get values while (rs.next()) @@ -135,14 +136,15 @@ public final class Msg MsgText.append(" ").append(SEPARATOR).append(MsgTip); msg.put(AD_Message, MsgText.toString()); } - - rs.close(); - pstmt.close(); } catch (SQLException e) { s_log.log(Level.SEVERE, "initMsg", e); return null; + } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; } // if (msg.size() < 100) @@ -460,9 +462,10 @@ public final class Msg // Check AD_Element String retStr = ""; + PreparedStatement pstmt = null; + ResultSet rs = null; try { - PreparedStatement pstmt = null; try { if (AD_Language == null || AD_Language.length() == 0 || Env.isBaseLanguage(AD_Language, "AD_Element")) @@ -479,8 +482,12 @@ public final class Msg { return ColumnName; } + finally { + DB.close(rs); + rs = null; + } pstmt.setString(1, ColumnName.toUpperCase()); - ResultSet rs = pstmt.executeQuery(); + rs = pstmt.executeQuery(); if (rs.next()) { retStr = rs.getString(1); @@ -491,13 +498,15 @@ public final class Msg retStr = temp; } } - rs.close(); - pstmt.close(); } catch (SQLException e) { s_log.log(Level.SEVERE, "getElement", e); return ""; + } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; } if (retStr != null) return retStr.trim();