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.