From b5a2bd6dbab6674fd66c8e5ba93ae8659e07a0d3 Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Mon, 10 Dec 2012 13:05:43 -0500 Subject: [PATCH 01/29] IDEMPIERE-455 Discover and fix FindBugs problems / Pattern RV_EXCEPTION_NOT_THROWN --- .../src/org/compiere/process/ExpenseAPInvoice.java | 8 ++++---- .../src/org/compiere/process/ExpenseSOrder.java | 2 +- .../org/adempiere/webui/desktop/DashboardController.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java b/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java index 00eb9b7034..0f642e7d99 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java +++ b/org.adempiere.base.process/src/org/compiere/process/ExpenseAPInvoice.java @@ -142,7 +142,7 @@ public class ExpenseAPInvoice extends SvrProcess .append(DisplayType.getDateFormat(DisplayType.Date).format(te.getDateReport())); invoice.setDescription(descr.toString()); if (!invoice.save()) - new IllegalStateException("Cannot save Invoice"); + throw new IllegalStateException("Cannot save Invoice"); old_BPartner_ID = bp.getC_BPartner_ID(); } MTimeExpenseLine[] tel = te.getLines(false); @@ -164,7 +164,7 @@ public class ExpenseAPInvoice extends SvrProcess if (line.getC_Project_ID() != 0 && line.getC_Project_ID() != invoice.getC_Project_ID()) invoice.setC_Project_ID(line.getC_Project_ID()); if (!invoice.save()) - new IllegalStateException("Cannot save Invoice"); + throw new IllegalStateException("Cannot save Invoice"); // Create OrderLine MInvoiceLine il = new MInvoiceLine (invoice); @@ -184,7 +184,7 @@ public class ExpenseAPInvoice extends SvrProcess il.setPrice(line.getPriceReimbursed()); // il.setTax(); if (!il.save()) - new IllegalStateException("Cannot save Invoice Line"); + throw new IllegalStateException("Cannot save Invoice Line"); // Update TEL line.setC_InvoiceLine_ID(il.getC_InvoiceLine_ID()); line.saveEx(); @@ -221,7 +221,7 @@ public class ExpenseAPInvoice extends SvrProcess } if (!invoice.save()) - new IllegalStateException("Cannot save Invoice"); + throw new IllegalStateException("Cannot save Invoice"); // m_noInvoices++; addLog(invoice.get_ID(), invoice.getDateInvoiced(), diff --git a/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java b/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java index b494651fb1..70ef7e9c6e 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java +++ b/org.adempiere.base.process/src/org/compiere/process/ExpenseSOrder.java @@ -216,7 +216,7 @@ public class ExpenseSOrder extends SvrProcess if (tel.getC_Campaign_ID() != 0 && tel.getC_Campaign_ID() != m_order.getC_Campaign_ID()) m_order.setC_Campaign_ID(tel.getC_Campaign_ID()); if (!m_order.save()) - new IllegalStateException("Cannot save Order"); + throw new IllegalStateException("Cannot save Order"); } // OrderLine diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java index d0b71bbf7e..a650e11160 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/desktop/DashboardController.java @@ -666,7 +666,7 @@ public class DashboardController implements EventListener { private ReportEngine runReport(int AD_Process_ID, String parameters) { MProcess process = MProcess.get(Env.getCtx(), AD_Process_ID); if (!process.isReport() || process.getAD_ReportView_ID() == 0) - new IllegalArgumentException("Not a Report AD_Process_ID=" + process.getAD_Process_ID() + throw new IllegalArgumentException("Not a Report AD_Process_ID=" + process.getAD_Process_ID() + " - " + process.getName()); // Process int AD_Table_ID = 0; @@ -681,12 +681,12 @@ public class DashboardController implements EventListener { pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx())); pi.setAD_PInstance_ID(pInstance.getAD_PInstance_ID()); if (!process.processIt(pi, null) && pi.getClassName() != null) - new IllegalStateException("Process failed: (" + pi.getClassName() + ") " + pi.getSummary()); + throw new IllegalStateException("Process failed: (" + pi.getClassName() + ") " + pi.getSummary()); // Report ReportEngine re = ReportEngine.get(Env.getCtx(), pi); if (re == null) - new IllegalStateException("Cannot create Report AD_Process_ID=" + process.getAD_Process_ID() + throw new IllegalStateException("Cannot create Report AD_Process_ID=" + process.getAD_Process_ID() + " - " + process.getName()); return re; From 05b0af19e55450073d4bd4639c11a5cbfefaaaeb Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Mon, 10 Dec 2012 13:06:55 -0500 Subject: [PATCH 02/29] IDEMPIERE-455 Discover and fix FindBugs problems / Pattern RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE --- .../src/org/compiere/db/CConnection.java | 1 + org.adempiere.base/src/org/compiere/util/DB.java | 3 ++- .../src/org/adempiere/webui/panel/RolePanel.java | 6 +++--- .../src/org/adempiere/webui/window/FindWindow.java | 10 ++++++---- .../src/org/adempiere/webui/window/WEMailDialog.java | 4 ---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/db/CConnection.java b/org.adempiere.base/src/org/compiere/db/CConnection.java index a70c267353..8a452470c9 100644 --- a/org.adempiere.base/src/org/compiere/db/CConnection.java +++ b/org.adempiere.base/src/org/compiere/db/CConnection.java @@ -1276,6 +1276,7 @@ public class CConnection implements Serializable, Cloneable * @param transactionIsolation Connection transaction level * @return Connection */ + @SuppressWarnings("unused") public Connection getConnection (boolean autoCommit, int transactionIsolation) { Connection conn = null; diff --git a/org.adempiere.base/src/org/compiere/util/DB.java b/org.adempiere.base/src/org/compiere/util/DB.java index cde5a93922..26b874d567 100644 --- a/org.adempiere.base/src/org/compiere/util/DB.java +++ b/org.adempiere.base/src/org/compiere/util/DB.java @@ -347,8 +347,9 @@ public final class DB if (conn != null) { conn.close(); + success = true; } - success = (conn != null); + else success = false; } catch (Exception e) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/RolePanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/RolePanel.java index fbaf1264b8..0542cd2da7 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/RolePanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/RolePanel.java @@ -575,9 +575,9 @@ public class RolePanel extends Window implements EventListener, Deferrabl // Elaine 2009/02/06 save preference to AD_Preference UserPreference userPreference = SessionManager.getSessionApplication().getUserPreference(); userPreference.setProperty(UserPreference.P_LANGUAGE, Env.getContext(m_ctx, UserPreference.LANGUAGE_NAME)); - userPreference.setProperty(UserPreference.P_ROLE, lstItemRole != null ? (String) lstItemRole.getValue() : "0"); - userPreference.setProperty(UserPreference.P_CLIENT, lstItemClient != null ? (String) lstItemClient.getValue() : "0"); - userPreference.setProperty(UserPreference.P_ORG, lstItemOrg != null ? (String) lstItemOrg.getValue() : "0"); + userPreference.setProperty(UserPreference.P_ROLE, (String) lstItemRole.getValue()); + userPreference.setProperty(UserPreference.P_CLIENT, (String) lstItemClient.getValue()); + userPreference.setProperty(UserPreference.P_ORG, (String) lstItemOrg.getValue()); userPreference.setProperty(UserPreference.P_WAREHOUSE, lstItemWarehouse != null ? (String) lstItemWarehouse.getValue() : "0"); userPreference.savePreference(); // 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 091e80c085..3862dfae93 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 @@ -1302,11 +1302,13 @@ public class FindWindow extends Window implements EventListener, ValueCha String lBrackets = listLeftBracket.getSelectedItem().getValue().toString(); if ( lBrackets != null ) openBrackets += lBrackets.length(); + else lBrackets = ""; // Right brackets Listbox listRightBracket = (Listbox)row.getFellow("listRightBracket"+row.getId()); String rBrackets = listRightBracket.getSelectedItem().getValue().toString(); if ( rBrackets != null ) openBrackets -= rBrackets.length(); + else rBrackets = ""; // And Or Listbox listAndOr = (Listbox)row.getFellow("listAndOr"+row.getId()); String andOr = listAndOr.getSelectedItem().getValue().toString(); @@ -1341,9 +1343,9 @@ public class FindWindow extends Window implements EventListener, ValueCha .append(FIELD_SEPARATOR) .append(andOr) .append(FIELD_SEPARATOR) - .append(lBrackets != null ? lBrackets : "") + .append(lBrackets) .append(FIELD_SEPARATOR) - .append(rBrackets != null ? rBrackets : ""); + .append(rBrackets); } continue; } @@ -1392,9 +1394,9 @@ public class FindWindow extends Window implements EventListener, ValueCha .append(FIELD_SEPARATOR) .append(andOr) .append(FIELD_SEPARATOR) - .append(lBrackets != null ? lBrackets : "") + .append(lBrackets) .append(FIELD_SEPARATOR) - .append(rBrackets != null ? rBrackets : ""); + .append(rBrackets); } String selected = fQueryName.getValue(); if (selected != null) { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java index 4cb601012e..4fee9ee274 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/WEMailDialog.java @@ -516,8 +516,6 @@ public class WEMailDialog extends Window implements EventListener, ValueC if (source.equals(fUser)) { // fUser - if (value == null) - fTo.setText(""); if (value instanceof Integer) { int AD_User_ID = ((Integer)value).intValue(); @@ -526,8 +524,6 @@ public class WEMailDialog extends Window implements EventListener, ValueC } } else { // fCcUser - if (value == null) - fCc.setText(""); if (value instanceof Integer) { int AD_User_ID = ((Integer)value).intValue(); From ad61a5e63750593cee0b01b7e859897029326544 Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Mon, 10 Dec 2012 14:35:53 -0500 Subject: [PATCH 03/29] IDEMPIERE-455 Discover and fix FindBugs problems / Pattern NS_DANGEROUS_NON_SHORT_CIRCUIT --- .../src/org/compiere/process/DistributionRun.java | 10 +++++----- .../org/eevolution/process/ExportFormatGenerator.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/org.adempiere.base.process/src/org/compiere/process/DistributionRun.java b/org.adempiere.base.process/src/org/compiere/process/DistributionRun.java index 873e7f8d4d..e64142fa69 100644 --- a/org.adempiere.base.process/src/org/compiere/process/DistributionRun.java +++ b/org.adempiere.base.process/src/org/compiere/process/DistributionRun.java @@ -114,13 +114,13 @@ public class DistributionRun extends SvrProcess } else if (name.equals("IsTest")) p_IsTest = "Y".equals(para[i].getParameter()); - else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) & name.equals("M_Warehouse_ID")) + else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) && name.equals("M_Warehouse_ID")) p_M_Warehouse_ID=((BigDecimal)para[i].getParameter()).intValue(); - else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) & name.equals("ConsolidateDocument")) + else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) && name.equals("ConsolidateDocument")) p_ConsolidateDocument="Y".equals((String)para[i].getParameter()); - else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) & name.equals("M_DistributionList_ID")) + else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) && name.equals("M_DistributionList_ID")) p_M_DistributionList_ID=para[i].getParameterAsInt(); - else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) & name.equals("IsRequiredDRP")) + else if (m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) && name.equals("IsRequiredDRP")) p_BasedInDamnd = "Y".equals((String)para[i].getParameter()); else log.log(Level.SEVERE, "prepare - Unknown Parameter: " + name); @@ -160,7 +160,7 @@ public class DistributionRun extends SvrProcess if (p_DatePromised == null) p_DatePromised = m_DateOrdered; - if(m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) & p_M_Warehouse_ID > 0) + if(m_docType.getDocBaseType().equals(MDocType.DOCBASETYPE_DistributionOrder) && p_M_Warehouse_ID > 0) { if(p_BasedInDamnd) { diff --git a/org.adempiere.base/src/org/eevolution/process/ExportFormatGenerator.java b/org.adempiere.base/src/org/eevolution/process/ExportFormatGenerator.java index f56077e1ae..174e8ee7f9 100644 --- a/org.adempiere.base/src/org/eevolution/process/ExportFormatGenerator.java +++ b/org.adempiere.base/src/org/eevolution/process/ExportFormatGenerator.java @@ -95,7 +95,7 @@ public class ExportFormatGenerator extends SvrProcess String format = null; if(tab.isActive()) { - if(p_IsInsertRecord&tab.isInsertRecord()) + if(p_IsInsertRecord && tab.isInsertRecord()) { table = new MTable(getCtx(), tab.getAD_Table_ID(), get_TrxName()); format = createFormat(table); From a3c1e9dc78f4d09d2d65a2d3761ea406cf2b0689 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 10 Dec 2012 15:11:21 -0500 Subject: [PATCH 04/29] IDEMPIERE-455 Discover and fix FindBugs problems / Pattern SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE --- .../webui/LoggedSessionListener.java | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java index 02330372a6..7976a753df 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/LoggedSessionListener.java @@ -1,8 +1,7 @@ package org.adempiere.webui; -import java.sql.ResultSet; -import java.sql.Statement; import java.util.Hashtable; +import java.util.List; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; @@ -10,8 +9,10 @@ import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; +import org.adempiere.exceptions.AdempiereException; import org.compiere.Adempiere; import org.compiere.model.MSession; +import org.compiere.model.Query; import org.compiere.model.ServerStateChangeEvent; import org.compiere.model.ServerStateChangeListener; import org.compiere.util.DB; @@ -53,34 +54,25 @@ public class LoggedSessionListener implements HttpSessionListener, ServletContex Adempiere.addServerStateChangeListener(this); return; } - + String serverName = WebUtil.getServerName(); - String sql = "UPDATE AD_Session SET processed = 'Y' WHERE processed ='N' AND servername = '"+serverName+"'"; - Statement stmt = DB.createStatement(); - try{ - stmt.executeUpdate(sql); - }catch (Exception e) { - System.out.println("UpdateSession: "+e); + String sql = "UPDATE AD_Session SET Processed='Y' WHERE Processed='N' AND ServerName=?"; + int no = DB.executeUpdate(sql, new Object[] {serverName}, false, null); + if (no < 0) { + throw new AdempiereException("UpdateSession: Cannot Destroy All Session"); } Adempiere.removeServerStateChangeListener(this); } public void removeADSession(String sessionID, String serverName) { - StringBuilder sql = new StringBuilder("SELECT * FROM AD_Session WHERE websession = '"); - sql.append(sessionID) - .append("' AND servername = '") - .append(serverName).append("' AND processed = 'N'"); - Statement stmt = DB.createStatement(); - try{ - ResultSet rs = stmt.executeQuery(sql.toString()); - if(rs.next()){ - MSession mSession = new MSession(Env.getCtx(), rs, null); - mSession.setProcessed(true); - mSession.save(); - } - }catch (Exception e) { - System.out.println("UpdateSession: "+e); + String whereClause = "WebSession=? AND ServerName=? AND Processed='N'"; + List sessions = new Query(Env.getCtx(), MSession.Table_Name, whereClause, null) + .setParameters(sessionID, serverName) + .list(); + for (MSession session : sessions) { + session.setProcessed(true); + session.saveEx(); } } From db87b54563f72246bb3dc1e8da120f002eaf3720 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 10 Dec 2012 15:23:43 -0500 Subject: [PATCH 05/29] IDEMPIERE-293 List of active session / fix findbug pattern SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE --- .../org/adempiere/webui/session/SessionContextListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java index 67688cf5ef..bb058512c8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java @@ -316,7 +316,7 @@ public class SessionContextListener implements ExecutionInit, MSession mSession = MSession.get(Env.getCtx(), false); if(mSession!=null && !mSession.isProcessed() && (Env.getContext(Env.getCtx(), "isReloaded")==null || Env.getContext(Env.getCtx(), "isReloaded").equals("") || Env.getContext(Env.getCtx(), "isReloaded").equals("N"))){ mSession.setProcessed(true); - mSession.save(); + mSession.saveEx(); } Env.setContext(Env.getCtx(), "isReloaded", "N"); } @@ -331,7 +331,7 @@ public class SessionContextListener implements ExecutionInit, MSession mSession = MSession.get(Env.getCtx(), false); if(mSession!=null && mSession.isProcessed()){ mSession.setProcessed(false); - mSession.save(); + mSession.saveEx(); }else if(mSession!=null){ Env.setContext(Env.getCtx(), "isReloaded", "Y"); } From d9afbe27681347d61ecdc8470153a103eaaeeb3a Mon Sep 17 00:00:00 2001 From: Richard Morales Date: Tue, 11 Dec 2012 16:48:34 -0500 Subject: [PATCH 06/29] IDEMPIERE-455 Discover and fix FindBugs problems / Pattern OS_OPEN_STREAM --- .../base/equinox/ExtensionPriorityManager.java | 13 ++++++++++++- .../src/org/adempiere/util/RestletUtil.java | 11 ++++++++++- .../src/org/compiere/cm/CacheHandler.java | 15 ++++++++++++--- .../src/org/compiere/model/MPasswordRule.java | 8 ++++++++ .../src/org/compiere/util/StoredHtmlSrc.java | 11 ++++++++++- .../src/org/compiere/install/KeyStoreMgt.java | 8 ++++++++ .../src/org/adempiere/pipo2/PackIn.java | 10 ++++++++-- .../src/org/adempiere/pipo2/Zipper.java | 11 ++++++++++- .../plugin/utils/AdempiereActivator.java | 10 +++++++++- .../org/adempiere/apps/graph/HtmlDashboard.java | 11 ++++++++++- .../webui/desktop/DashboardController.java | 12 ++++++++++-- .../adempiere/db/oracle/config/ConfigOracle.java | 11 ++++++++++- 12 files changed, 117 insertions(+), 14 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/base/equinox/ExtensionPriorityManager.java b/org.adempiere.base/src/org/adempiere/base/equinox/ExtensionPriorityManager.java index d53a67b9e2..7df6c951a8 100644 --- a/org.adempiere.base/src/org/adempiere/base/equinox/ExtensionPriorityManager.java +++ b/org.adempiere.base/src/org/adempiere/base/equinox/ExtensionPriorityManager.java @@ -39,8 +39,10 @@ public class ExtensionPriorityManager { URL url = location.getURL(); File file = new File(url.getPath(), "extensions-priorty.properties"); if (file.exists() && file.canRead()) { + FileInputStream fileInput = null; try { - priorityMap.load(new FileInputStream(file)); + fileInput = new FileInputStream(file); + priorityMap.load(fileInput); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -48,6 +50,15 @@ public class ExtensionPriorityManager { // TODO Auto-generated catch block e.printStackTrace(); } + finally{ + if (fileInput != null) { + try { + fileInput.close(); + } catch (Exception e2) {} + fileInput = null; + } + } + } } diff --git a/org.adempiere.base/src/org/adempiere/util/RestletUtil.java b/org.adempiere.base/src/org/adempiere/util/RestletUtil.java index ed4ba160e1..dec3fc5b68 100644 --- a/org.adempiere.base/src/org/adempiere/util/RestletUtil.java +++ b/org.adempiere.base/src/org/adempiere/util/RestletUtil.java @@ -37,6 +37,7 @@ public class RestletUtil { */ @SuppressWarnings("unchecked") public static T toObject(Representation entity) { + ObjectInputStream ois = null; try { if (entity instanceof WrapperRepresentation) { entity = ((WrapperRepresentation)entity).getWrappedRepresentation(); @@ -46,7 +47,7 @@ public class RestletUtil { return (T) or.getObject(); } else if (entity instanceof InputRepresentation) { InputRepresentation ir = (InputRepresentation) entity; - ObjectInputStream ois = new ObjectInputStream(ir.getStream()); + ois = new ObjectInputStream(ir.getStream()); return (T) ois.readObject(); } else { return null; @@ -55,5 +56,13 @@ public class RestletUtil { log.log(Level.SEVERE, e.getLocalizedMessage(), e); return null; } + finally{ + if (ois != null) { + try { + ois.close(); + } catch (Exception e2) {} + ois = null; + } + } } } diff --git a/org.adempiere.base/src/org/compiere/cm/CacheHandler.java b/org.adempiere.base/src/org/compiere/cm/CacheHandler.java index ad5522704a..7999aa75b3 100644 --- a/org.adempiere.base/src/org/compiere/cm/CacheHandler.java +++ b/org.adempiere.base/src/org/compiere/cm/CacheHandler.java @@ -145,6 +145,7 @@ public class CacheHandler { private void runURLRequest(String cache, String ID) { String thisURL = null; for(int i=0; i entries = zipFile.entries(); ZipEntry entry = entries.nextElement(); File tempfile = new File(entry.getName()); @@ -114,6 +115,14 @@ public class Zipper { ioe.printStackTrace(); return ""; } + finally{ + if (zipFile != null) { + try { + zipFile.close(); + } catch (Exception e) {} + zipFile = null; + } + } } }// CreateZipFile diff --git a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/AdempiereActivator.java b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/AdempiereActivator.java index 3c2f44130e..5566639762 100644 --- a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/AdempiereActivator.java +++ b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/AdempiereActivator.java @@ -75,11 +75,12 @@ public class AdempiereActivator implements BundleActivator { URL packout = context.getBundle().getEntry("/META-INF/2Pack.zip"); if (packout != null) { IDictionaryService service = Service.locator().locate(IDictionaryService.class).getService(); + FileOutputStream zipstream = null; try { // copy the resource to a temporary file to process it with 2pack InputStream stream = context.getBundle().getEntry("/META-INF/2Pack.zip").openStream(); File zipfile = File.createTempFile(getName(), ".zip"); - FileOutputStream zipstream = new FileOutputStream(zipfile); + zipstream = new FileOutputStream(zipfile); byte[] buffer = new byte[1024]; int read; while((read = stream.read(buffer)) != -1){ @@ -90,6 +91,13 @@ public class AdempiereActivator implements BundleActivator { } catch (Exception e) { logger.log(Level.SEVERE, "Error on Dictionary service", e); } + finally{ + if (zipstream != null) { + try { + zipstream.close(); + } catch (Exception e2) {} + } + } } } diff --git a/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java b/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java index dbea264cc5..19bbfc19f8 100644 --- a/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java +++ b/org.adempiere.ui.swing/src/org/adempiere/apps/graph/HtmlDashboard.java @@ -114,9 +114,10 @@ public class HtmlDashboard extends JPanel implements MouseListener, URL url = getClass().getClassLoader(). getResource("org/compiere/css/PAPanel.css"); InputStreamReader ins; + BufferedReader bufferedReader = null; try { ins = new InputStreamReader(url.openStream()); - BufferedReader bufferedReader = new BufferedReader( ins ); + bufferedReader = new BufferedReader( ins ); String cssLine; result.append("