Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Revisions: Issue #36067 All Revisions ] Back to Issue ]
Summary 0036067: old callouts should be refactored to implement SimpleCallout
Revision 2017-05-23 08:39 by alostale
Steps To Reproduce To emulate it:

1. Apply attached diff that executes step 3 defined in description 2K times per callout
2. Limit PermGen (ie. 160MB) and monitor JVM
3. Open Sales Order window and click on new (this executes SL_Order_DocType and SL_Order_PriceList callouts)
  -> Check JVM graphs during execution (see attached image):
      * PermGen rapidly increases
      * This is caused to a big number of classes loaded
      * Finally, major GC collection cycles are triggered

To detect wrong callouts, apply detect-callouts.diff and execute ClassLoaderTest.

Attached the list of the 94 cases obtained in current pi.

Revision 2017-05-23 08:37 by alostale
Steps To Reproduce To emulate it:

1. Apply attached diff that executes step 3 defined in description 2K times per callout
2. Limit PermGen (ie. 160MB) and monitor JVM
3. Open Sales Order window and click on new (this executes SL_Order_DocType and SL_Order_PriceList callouts)
  -> Check JVM graphs during execution (see attached image):
      * PermGen rapidly increases
      * This is caused to a big number of classes loaded
      * Finally, major GC collection cycles are triggered

To detect wrong callouts apply detect-callouts.diff and execute ClassLoaderTest. This is the list of the 94 cases obtained in current pi:

org.openbravo.client.application.FixedValueExpressionCallout - FixedValueExpression
    OBUIAPP_Parameter.Fixedvalue
org.openbravo.erpCommon.ad_callouts.Activation_Message - Activation_Message
    AD_System_Info.AD_System_Info_ID
    AD_Registration_Info.Isregistrationactive
    AD_System_Info.Testproxy
org.openbravo.erpCommon.ad_callouts.SE_Expense_Amount - SE_Expense_Amount
    S_TimeExpenseLine.C_Currency_ID
    S_TimeExpenseLine.ExpenseAmt
    S_TimeExpenseLine.DateExpense
org.openbravo.erpCommon.ad_callouts.SE_Expense_BP_Project - SE_Expense_BP_Project
    S_TimeExpenseLine.C_Project_ID
    S_TimeExpenseLine.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SE_Expense_Product - SE_Expense_Product
    S_TimeExpenseLine.Qty
    S_TimeExpenseLine.InvoicePrice
    S_TimeExpenseLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SE_ExternalPOS_BPartner - SE_ExternalPOS_BPartner
    C_ExternalPOS.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SE_FinancialAccount_BSAccounts - SE_FinancialAccount_BSAccounts
    FIN_Financial_Account_Acct.FIN_Transitory_Acct
org.openbravo.erpCommon.ad_callouts.SE_InOut_DocType - SE_InOut_DocType
    M_InOut.C_DocType_ID
org.openbravo.erpCommon.ad_callouts.SE_Invoice_BPartner - SE_Invoice_BPartner
    C_Invoice.C_BPartner_ID
    C_Invoice.FIN_Paymentmethod_ID
org.openbravo.erpCommon.ad_callouts.SE_Invoice_Project - SE_Invoice_Project
    C_Invoice.C_Project_ID
org.openbravo.erpCommon.ad_callouts.SE_Order_Project - SE_Order_Project
    C_Order.C_Project_ID
org.openbravo.erpCommon.ad_callouts.SE_Period_Control - SE_Period_Control
    AD_Org.AD_Orgtype_ID
org.openbravo.erpCommon.ad_callouts.SE_PeriodNo - SE_PeriodNo
    C_PeriodControl_Log.AD_Org_ID
    C_PeriodControl_Log.C_Year_ID
org.openbravo.erpCommon.ad_callouts.SE_Pricelist_Active - SE_Pricelist_Active
    M_PriceList.IsActive
org.openbravo.erpCommon.ad_callouts.SE_Project_BPartner - SE_Project_BPartner
    C_Project.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SE_ProjectLine_Value - SE_ProjectLine_Value
    C_ProjectPhase.M_Product_ID
    C_ProjectLine.M_Product_ID
    C_ProjectTask.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SE_Proposal_BPartner - SE_Proposal_BPartner
    C_ProjectProposal.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SE_Supplier_BPartner - SE_Supplier_BPartner
    C_Project_Vendor.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SE_Taxes_Active - SE_Taxes_Active
    C_Tax.IsActive
org.openbravo.erpCommon.ad_callouts.SL_AlertRule_SQL - SL_AlertRule_SQL
    AD_AlertRule.Sql
org.openbravo.erpCommon.ad_callouts.SL_Asset_Product - SL_Asset_Product
    A_Asset.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_Assets - SL_Assets
    A_Asset.AssetValueAmt
    A_Asset.Residualassetvalueamt
    A_Asset.Amortizationvalueamt
org.openbravo.erpCommon.ad_callouts.SL_BankDebt_Amount - SL_BankDebt_Amount
    C_BankStatementLine.C_Debt_Payment_ID
org.openbravo.erpCommon.ad_callouts.SL_BankStmt_Amount - SL_BankStmt_Amount
    C_BankStatementLine.StmtAmt
    C_BankStatementLine.ConvertChargeAmt
    C_BankStatementLine.ChargeAmt
org.openbravo.erpCommon.ad_callouts.SL_Budget_Product - SL_Budget_Product
    C_BudgetLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_CashJournal_Amounts - SL_CashJournal_Amounts
    C_CashLine.WriteOffAmt
    C_CashLine.DiscountAmt
    C_CashLine.Amount
    C_CashLine.C_Order_ID
    C_CashLine.C_Debt_Payment_ID
org.openbravo.erpCommon.ad_callouts.SL_CCPMeasure_Group - SL_CCPMeasure_Group
    MA_Measure_Group.MA_CCP_Group_ID
org.openbravo.erpCommon.ad_callouts.SL_Charge - SL_Charge
    C_Order.C_Charge_ID
org.openbravo.erpCommon.ad_callouts.SL_Column - SL_Column
    AD_Column.IsKey
org.openbravo.erpCommon.ad_callouts.SL_Conversion_Rate - SL_Conversion_Rate
    C_UOM_Conversion.DivideRate
    C_UOM_Conversion.MultiplyRate
    C_Conversion_Rate.DivideRate
    C_Conversion_Rate.MultiplyRate
org.openbravo.erpCommon.ad_callouts.SL_CostcenterEmployee_SalaryCategory - SL_CostcenterEmployee_SalaryCategory
    MA_Costcenter_Employee.C_Salary_Category_ID
org.openbravo.erpCommon.ad_callouts.SL_CreateLines_Conversion_UOM - SL_CreateLines_Conversion_UOM
org.openbravo.erpCommon.ad_callouts.SL_GlobalUse_Conversion - SL_GlobalUse_Conversion
    MA_GlobalUse.M_Product_Uom_Id
    MA_GlobalUse.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_GlobalUse_Product - SL_GlobalUse_Product
    MA_GlobalUse.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_InOut_BPartner - SL_InOut_BPartner
    M_InOut.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SL_InOut_Conversion - SL_InOut_Conversion
    M_InOutLine.M_Product_Uom_Id
    M_InOutLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_Internal_Consumption_Conversion - SL_Internal_Consumption_Conversion
    M_Internal_ConsumptionLine.M_Product_Uom_Id
    M_Internal_ConsumptionLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_Internal_Consumption_Product - SL_Internal_Consumption_Product
    M_Internal_ConsumptionLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_Inventory_Conversion - SL_Inventory_Conversion
    M_InventoryLine.M_Product_Uom_Id
    M_InventoryLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_Invoice_Amt - SL_Invoice_Amt
    C_InvoiceLine.QtyInvoiced
    C_InvoiceLine.LineNetAmt
    C_InvoiceLine.Gross_Unit_Price
    C_InvoiceLine.C_Tax_ID
    C_InvoiceLine.PriceActual
org.openbravo.erpCommon.ad_callouts.SL_Invoice_Charge_Tax - SL_Invoice_Charge_Tax
    C_InvoiceLine.C_Charge_ID
org.openbravo.erpCommon.ad_callouts.SL_Invoice_Conversion - SL_Invoice_Conversion
    C_InvoiceLine.M_Product_Uom_Id
    C_InvoiceLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_Invoice_DocType - SL_Invoice_DocType
    C_Invoice.C_DocTypeTarget_ID
org.openbravo.erpCommon.ad_callouts.SL_Invoice_Glitem - SL_Invoice_Glitem
    C_InvoiceLine.Account_ID
org.openbravo.erpCommon.ad_callouts.SL_Invoice_PriceList - SL_Invoice_PriceList
    C_Invoice.M_PriceList_ID
org.openbravo.erpCommon.ad_callouts.SL_Invoice_Product - SL_Invoice_Product
    C_InvoiceLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_InvoiceTax_Amt - SL_InvoiceTax_Amt
    C_InvoiceTax.TaxAmt
    C_InvoiceTax.TaxBaseAmt
org.openbravo.erpCommon.ad_callouts.SL_IsDefault - SL_IsDefault
    C_POC_EMAILDEFINITION.Isdefault
    AD_Module.IsDefault
org.openbravo.erpCommon.ad_callouts.SL_JournalLineAmt - SL_JournalLineAmt
    GL_JournalLine.AmtSourceCr
    GL_JournalLine.AmtSourceDr
    GL_JournalLine.DateAcct
    GL_JournalLine.C_Currency_ID
    GL_JournalLine.CurrencyRateType
    GL_JournalLine.CurrencyRate
org.openbravo.erpCommon.ad_callouts.SL_Journal_Period - SL_Journal_Period
    GL_JournalBatch.AD_Org_ID
    GL_JournalBatch.DateAcct
    GL_JournalBatch.C_Period_ID
    GL_JournalBatch.DateDoc
    GL_Journal.C_Currency_ID
    GL_Journal.C_Period_ID
    GL_Journal.DateAcct
    GL_Journal.DateDoc
    GL_Journal.C_AcctSchema_ID
    GL_Journal.AD_Org_ID
org.openbravo.erpCommon.ad_callouts.SL_LegalEntity_Acct - SL_LegalEntity_Acct
    AD_OrgType.IsLegalEntity
org.openbravo.erpCommon.ad_callouts.SL_MachineCost - SL_MachineCost
    MA_Machine_Cost.Cost
    MA_Machine_Cost.Purchaseamt
    MA_Machine_Cost.Toolsetamt
    MA_Machine_Cost.Amortization
    MA_Machine_Cost.Yearvalue
    MA_Machine_Cost.Daysyear
    MA_Machine_Cost.Dayhours
    MA_Machine_Cost.Improductivehoursyear
    MA_Machine_Cost.Costuomyear
org.openbravo.erpCommon.ad_callouts.SL_ModuleCallout - SL_ModuleCallout
    AD_Module.Type
    AD_Module.IsInDevelopment
org.openbravo.erpCommon.ad_callouts.SL_Module_Minor_Version - SL_Module_Minor_Version
    AD_Module_Dependency.AD_Dependent_Module_ID
org.openbravo.erpCommon.ad_callouts.SL_Movement_Conversion - SL_Movement_Conversion
    M_MovementLine.QuantityOrder
    M_MovementLine.M_Product_Uom_Id
org.openbravo.erpCommon.ad_callouts.SL_Order_Amt - SL_Order_Amt
    C_OrderLine.M_AttributeSetInstance_ID
    C_OrderLine.PriceActual
    C_OrderLine.QtyOrdered
    C_OrderLine.LineNetAmt
    C_OrderLine.CANCELPRICEAD
    C_OrderLine.Gross_Unit_Price
    C_OrderLine.Discount
    C_OrderLine.C_Tax_ID
    C_OrderLine.PriceList
org.openbravo.erpCommon.ad_callouts.SL_Order_Charge_Tax - SL_Order_Charge_Tax
    C_OrderLine.C_Charge_ID
org.openbravo.erpCommon.ad_callouts.SL_Order_Conversion - SL_Order_Conversion
    C_OrderLine.M_Product_Uom_Id
    C_OrderLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_Order_DocType - SL_Order_DocType
    C_Order.C_DocTypeTarget_ID
org.openbravo.erpCommon.ad_callouts.SL_Order_PriceList - SL_Order_PriceList
    C_Order.M_PriceList_ID
org.openbravo.erpCommon.ad_callouts.SL_Order_Product - SL_Order_Product
    C_OrderLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_Order_Tax - SL_Order_Tax
    C_OrderLine.C_BPartner_Location_ID
org.openbravo.erpCommon.ad_callouts.SL_Organization_Info - SL_Organization_Info
    AD_Org.Value
org.openbravo.erpCommon.ad_callouts.SL_PC_Case_Product - SL_PC_Case_Product
    MA_PC_Case.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_Production_Conversion - SL_Production_Conversion
    M_ProductionLine.QuantityOrder
    M_ProductionLine.M_Product_Uom_Id
    MA_WRPhaseProduct.QuantityOrder
    MA_WRPhaseProduct.M_Product_Uom_Id
org.openbravo.erpCommon.ad_callouts.SL_ProductionPlan_Conversion - SL_ProductionPlan_Conversion
    M_ProductionPlan.Secondaryqty
    M_ProductionPlan.Conversionrate
org.openbravo.erpCommon.ad_callouts.SL_ProductionPlan_WRPhase - SL_ProductionPlan_WRPhase
    M_ProductionPlan.MA_Wrphase_ID
org.openbravo.erpCommon.ad_callouts.SL_Production_Product - SL_Production_Product
    M_ProductionLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_ProductPrice_PriceListVersion - SL_ProductPrice_PriceListVersion
org.openbravo.erpCommon.ad_callouts.SL_Product_Type - SL_Product_Type
    M_Product.ProductType
org.openbravo.erpCommon.ad_callouts.SL_Project_Margin - SL_Project_Margin
    C_Project.Servrevenue
    C_Project.Servcost
    C_Project.Servmargin
    C_Project.Expreinvoicing
    C_Project.Expexpenses
    C_Project.Expmargin
org.openbravo.erpCommon.ad_callouts.SL_Project_Planned - SL_Project_Planned
    C_ProjectLine.PlannedQty
    C_ProjectLine.PlannedMarginAmt
    C_ProjectLine.PlannedPrice
    C_ProjectLine.Plannedpoprice
org.openbravo.erpCommon.ad_callouts.SL_Project_PriceList - SL_Project_PriceList
    C_Project.M_PriceList_ID
org.openbravo.erpCommon.ad_callouts.SL_Project_Type - SL_Project_Type
    C_Project.AD_Org_ID
org.openbravo.erpCommon.ad_callouts.SL_Proposal_Product - SL_Proposal_Product
    C_ProjectProposalLine.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_Requisition_BPartner - SL_Requisition_BPartner
org.openbravo.erpCommon.ad_callouts.SL_Requisition_BPartner_PriceList - SL_Requisition_BPartner_PriceList
    M_Requisition.M_PriceList_ID
    M_Requisition.C_BPartner_ID
    M_RequisitionLine.C_BPartner_ID
org.openbravo.erpCommon.ad_callouts.SL_RequisitionLine_Amt - SL_RequisitionLine_Amt
    M_RequisitionLine.Qty
    M_RequisitionLine.PriceList
    M_RequisitionLine.PriceActual
    M_RequisitionLine.Discount
    M_RequisitionLine.Gross_Unit_Price
org.openbravo.erpCommon.ad_callouts.SL_RequisitionLine_Conversion - SL_RequisitionLine_Conversion
    M_RequisitionLine.M_Product_Uom_Id
    M_RequisitionLine.QuantityOrder
org.openbravo.erpCommon.ad_callouts.SL_RequisitionLine_Product - SL_RequisitionLine_Product
    M_RequisitionLine.M_Product_ID
    M_RequisitionLine.M_PriceList_ID
org.openbravo.erpCommon.ad_callouts.SL_RequisitionOrder_Order - SL_RequisitionOrder_Order
    M_RequisitionOrder.C_OrderLine_ID
org.openbravo.erpCommon.ad_callouts.SL_ScheduledMaintenance_Maintenance - SL_ScheduledMaintenance_Maintenance
    MA_Maint_Scheduled.MA_Maintenance_ID
org.openbravo.erpCommon.ad_callouts.SL_SequenceProduct_Conversion - SL_SequenceProduct_Conversion
    MA_SequenceProduct.QuantityOrder
    MA_SequenceProduct.M_Product_Uom_Id
org.openbravo.erpCommon.ad_callouts.SL_SequenceProduct_Product - SL_SequenceProduct_Product
    MA_SequenceProduct.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_TableAudit - SL_TableAudit
    AD_Table.IsFullyAudited
    AD_Column.IsExcludeAudit
org.openbravo.erpCommon.ad_callouts.SL_User_Name - SL_User_Name
    AD_User.Name
    AD_User.Firstname
    AD_User.Lastname
org.openbravo.erpCommon.ad_callouts.SL_WorkRequirement_Conversion - SL_WorkRequirement_Conversion
    MA_WorkRequirement.Secondaryqty
    MA_WorkRequirement.Conversionrate
org.openbravo.erpCommon.ad_callouts.SL_WorkRequirement_ProcessPlan - SL_WorkRequirement_ProcessPlan
    MA_WorkRequirement.MA_Processplan_ID
org.openbravo.erpCommon.ad_callouts.SL_WorkRequirement_StartDate - SL_WorkRequirement_StartDate
    MA_WorkRequirement.StartDate
org.openbravo.erpCommon.ad_callouts.SL_WRPhaseProduct_Product - SL_WRPhaseProduct_Product
    MA_WRPhaseProduct.M_Product_ID
org.openbravo.erpCommon.ad_callouts.SL_WRPhase_Sequence - SL_WRPhase_Sequence
    MA_WRPhase.MA_Sequence_ID
org.openbravo.erpCommon.ad_callouts.SL_Year_Validation - SL_Year_Validation
    C_Year.Year
org.openbravo.userinterface.selector.DefaultExpressionCallout - DefaultExpression
    OBUISEL_Selector_Field.AD_Column_ID
    OBUISEL_Selector.Filter_Expression
    OBUISEL_Selector_Field.Default_Expression
org.openbravo.userinterface.selector.SelectorFieldPropertyCallout - Selector_Field_Property_Callout
    OBUISEL_Selector_Field.Property

Revision 2017-05-23 08:35 by alostale
Steps To Reproduce To emulate it:

1. Apply attached diff that executes step 3 defined in description 2K times per callout
2. Limit PermGen (ie. 160MB) and monitor JVM
3. Open Sales Order window and click on new (this executes SL_Order_DocType and SL_Order_PriceList callouts)
  -> Check JVM graphs during execution (see attached image):
      * PermGen rapidly increases
      * This is caused to a big number of classes loaded
      * Finally, major GC collection cycles are triggered

To detect wrong callouts apply detect-callouts.diff and execute ClassLoaderTest. This is the list obtained in current pi:
Revision 2017-05-23 08:34 by alostale
Steps To Reproduce To emulate it:

1. Apply attached diff that executes step 3 defined in description 2K times per callout
2. Limit PermGen (ie. 160MB) and monitor JVM
3. Open Sales Order window and click on new (this executes SL_Order_DocType and SL_Order_PriceList callouts)
  -> Check JVM graphs during execution:
      * PermGen rapidly increases
      * This is caused to a big number of classes loaded
      * Finally, major GC collection cycles are triggered

To detect wrong callouts apply detect-callouts.diff and execute ClassLoaderTest. This is the list obtained in current pi:


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker