Consultor Eletrônico



Kbase P166999: 4GL/ABL: Using AddRange on a collection with an EXTENT parameter which ABL automatically casts to ar
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/06/2010
Status: Unverified

SYMPTOM(s):

4GL/ABL: Using AddRange on a collection with an EXTENT parameter which ABL automatically casts to array prevents garbage collection of the items

Problem also occurs with Infragistics.Win.UltraWinGrid.UltraGridColumn collection as well as the Infragistics.UltraChart.Resources.Appearance.PaintElementCollection collection

Memory leak results from every run. The issue occurs with Infragistics

FACT(s) (Environment):

Windows
OpenEdge 10.2B
OpenEdge 10.2B01

CAUSE:

Bug# OE00198351

FIX:

None at this time. As workaround, add the individual array elements instead of auto-CASTing the whole array. See the ELSE DO block of the of the FillCollection procedure in the code sample below:
ELSE DO:
/* the PaintElement will get garbage collected correctly if they are added as individual elements and NOT using an EXTENT auto-CASTed to array */
objPaintElementArray = extObjPaintElement.

objPaintElementCollection:AddRange(CAST(BOX(extObjPaintElement), "Infragistics.UltraChart.Resources.Appearance.PaintElement[]")).
objPaintElementCollection:AddRange(objPaintElementArray).
objPaintElementCollection:Add(extObjPaintElement[1]).
objPaintElementCollection:Add(extObjPaintElement[2]).
END.