resource leaks ?

571 views
Skip to first unread message

Habib Salhi

unread,
Aug 31, 2017, 4:45:59 AM8/31/17
to iDempiere
Hi everyone.. did anyone else notice these Java "resource leaks" warning in eclipse ? is this something to be worried about in a big SaaS implementation ? appreciate any input

Resource leak: '<unassigned Closeable value>' is never closed    AttachmentFileSystem.java    /org.adempiere.base/src/org/compiere/model    line 91    Java Problem
Resource leak: '<unassigned Closeable value>' is never closed    AttachmentFileSystem.java    /org.adempiere.base/src/org/compiere/model    line 92    Java Problem
Resource leak: '<unassigned Closeable value>' is never closed    CCachedRowSet.java    /org.adempiere.base/src/org/compiere/util    line 198    Java Problem
Resource leak: 'is' is never closed    EMailProcessor.java    /org.adempiere.server/src/main/server/org/compiere/server    line 464    Java Problem
Resource leak: 'is' is never closed    EMailProcessor.java    /org.adempiere.server/src/main/server/org/compiere/server    line 673    Java Problem
Resource leak: 'm_out' is never closed    SubOrder.java    /org.adempiere.ui.swing/src/org/compiere/pos    line 633    Java Problem
Resource leak: 'pstmt' is not closed at this location    CommissionCalc.java    /org.adempiere.base.process/src/org/compiere/process    line 384    Java Problem
Resource leak: 'pstmt' is not closed at this location    ExpenseAPInvoice.java    /org.adempiere.base.process/src/org/compiere/process    line 145    Java Problem
Resource leak: 'pstmt' is not closed at this location    GridTable.java    /org.adempiere.base/src/org/compiere/model    line 1994    Java Problem
Resource leak: 'pstmt' is not closed at this location    ImportInventory.java    /org.adempiere.base.process/src/org/compiere/process    line 386    Java Problem
Resource leak: 'pstmt' is not closed at this location    ImportPayment.java    /org.adempiere.base.process/src/org/compiere/process    line 510    Java Problem
Resource leak: 'pstmt' is not closed at this location    MMatchPO.java    /org.adempiere.base/src/org/compiere/model    line 470    Java Problem
Resource leak: 'pstmt' is not closed at this location    MProduction.java    /org.adempiere.base/src/org/compiere/model    line 420    Java Problem
Resource leak: 'pstmt' is not closed at this location    MProductionPlan.java    /org.adempiere.base/src/org/compiere/model    line 292    Java Problem
Resource leak: 'pstmt' is not closed at this location    PaySelectionCreateFrom.java    /org.adempiere.base.process/src/org/compiere/process    line 245    Java Problem
Resource leak: 'pstmt' is not closed at this location    SequenceCheck.java    /org.adempiere.base.process/src/org/compiere/process    line 122    Java Problem
Resource leak: 'pstmtActual' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 361    Java Problem
Resource leak: 'pstmtOpenOrders' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 271    Java Problem
Resource leak: 'pstmtPlan' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 179    Java Problem
Resource leak: 'rs' is not closed at this location    CommissionCalc.java    /org.adempiere.base.process/src/org/compiere/process    line 384    Java Problem
Resource leak: 'rs' is not closed at this location    GridTable.java    /org.adempiere.base/src/org/compiere/model    line 1994    Java Problem
Resource leak: 'rs' is not closed at this location    MProduction.java    /org.adempiere.base/src/org/compiere/model    line 420    Java Problem
Resource leak: 'rs' is not closed at this location    MProductionPlan.java    /org.adempiere.base/src/org/compiere/model    line 292    Java Problem
Resource leak: 'rs' is not closed at this location    PaySelectionCreateFrom.java    /org.adempiere.base.process/src/org/compiere/process    line 245    Java Problem
Resource leak: 'rs' is not closed at this location    SequenceCheck.java    /org.adempiere.base.process/src/org/compiere/process    line 122    Java Problem
Resource leak: 'rsActual' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 361    Java Problem
Resource leak: 'rsOpenOrders' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 271    Java Problem
Resource leak: 'rsPlan' is not closed at this location    CashFlow.java    /org.adempiere.base/src/org/globalqss/process    line 179    Java Problem
Resource leak: 'source' is not closed at this location    PackOut.java    /org.adempiere.pipo.legacy/src/org/adempiere/pipo    line 859    Java Problem
Resource leak: 'source' is not closed at this location    PackOut.java    /org.adempiere.pipo.legacy/src/org/adempiere/pipo    line 867    Java Problem
Resource leak: 'stmt' is not closed at this location    GenericPOElementHandler.java    /org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler    line 155    Java Problem
Resource leak: 'zipFile' is never closed    CreateZipFile.java    /org.adempiere.pipo.legacy/src/org/adempiere/pipo    line 105    Java Problem

Carlos Antonio Ruiz Gomez

unread,
Aug 31, 2017, 6:14:44 AM8/31/17
to idem...@googlegroups.com
Hi Habib,

Is just a warning, poor syntax checking from eclipse as the resources are closed with DB.close on finally

Hiep proposed a patch for that in ticket IDEMPIERE-2544 but it changes too much stuff for something that I think must be fixed in eclipse itself.

Unfortunately eclipse doesn't have a configurable way to indicate that, it recognizes apache and guava, but not our custom close implementation.

Regards,

Carlos Ruiz
--

Heng Sin Low

unread,
Sep 2, 2017, 7:00:24 AM9/2/17
to idem...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "iDempiere" group.
To unsubscribe from this group and stop receiving emails from it, send an email to idempiere+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/idempiere/cbc989f1-9a37-a3c4-574d-eff6c808ca0d%40gmail.com.

For more options, visit https://groups.google.com/d/optout.

Hiep Lq

unread,
Nov 29, 2017, 10:07:51 PM11/29/17
to iDempiere

From Hengsin link I go to "Leak analysis respects well-known utilities" of http://archive.eclipse.org/eclipse/downloads/drops4/R-4.3-201306052000/news/eclipse-news-part2.html

so play a bit with org.apache.commons.dbutils.DbUtils

1. function DbUtils.closeQuietly is save effect of DB.close so can safely replace

2. in case full library commons-dbutils is overweight, we can create class org.apache.commons.dbutils.DbUtils inside org.adempiere.base and implement by ourself so don't get anymore dependency
eclipse check for "Fully Qualified Names" + function signature to add white list

conclude i suggest to implement like below:

1. create plulgin apache.fake
2. create class org.apache.commons.dbutils.DbUtils and export package org.apache.commons.dbutils
3. any plugin use DB.close will import package org.apache.commons.dbutils
4. replace DB.close by DbUtils.closeQuietly

so up to implementer, can use ourself implement or full implement form library of apache.
To unsubscribe from this group and stop receiving emails from it, send an email to idempiere+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages