Skip to main content
Participant
October 15, 2009
Question

Error: Error #1023: Stack overflow occurred.

  • October 15, 2009
  • 1 reply
  • 2924 views

Hi,

I'm running into this error when trying to display a modal window using popupmanager and .

Here's my code:  the stack overflow happens on the line     PopUpManager.addPopUp(detailedAXWindow, this, true);

package com.ppdi.dashboard.view.isysmon

{

import com.ppdi.dashboard.view.AXGrid;

import com.ppdi.dashboard.view.AXGridTitleWindow;

import mx.collections.ArrayCollection;

import mx.controls.AdvancedDataGrid;

import mx.controls.Text;

import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;

import mx.events.ListEvent;

import mx.managers.PopUpManager;

public class ISYSMonTable extends AXGrid

{

private var printColumns:Array;

private var mother:ISYSMonContent;

private var procId:String;

private var vInt:int;

private var hdrStudyNumber:String;

private var hdrStudyGroup:String;

private var hdrPeriod:String;

private var hdrStudyDay:String;

private var hdrTimepoint:String;

private var hdrProcedure:String;

import mx.events.CloseEvent;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.rpc.http.HTTPService;

import mx.controls.Alert;

import com.ppdi.dashboard.tools.Tools;

import mx.managers.CursorManager;

import mx.collections.XMLListCollection;

// Embed the icon for the groups.

    [Bindable]

    [Embed(source="assets/right_arrow_up.gif")]

    public var icn:Class;

    private var clickCount:int = 0;

    private var prevValueStr:String = "";

    private var httpServiceDrillDown:HTTPService;

function ISYSMonTable(dP:ArrayCollection, mother:ISYSMonContent)

{

super(dP);

        super.showPrintExport(false);

        //super.showSearchBox(false);

this.mother = mother;

//Initialize the HTTP Service

this.httpServiceDrillDown = new HTTPService();

//DON'T HARD CODE URL

//this.httpServiceDrillDown.url= mother.getDrillDownURL();

this.httpServiceDrillDown.url= "http://ausecas02.americas.ppdi.local/flexchart/htdocs/flexchart/ISYSSubjects.jsp";

this.httpServiceDrillDown.resultFormat = "e4x";

this.httpServiceDrillDown.addEventListener(FaultEvent.FAULT, onFaultHttpServiceDrillDown);

this.httpServiceDrillDown.addEventListener(ResultEvent.RESULT, onResultHttpServiceDrillDown);

}

private function onFaultHttpServiceDrillDown(e:FaultEvent):void

{

Alert.show("Unable to load data for Drill Down. \nPlease contact eClinics Development Group. Fault Reason :\n" + e.message);

}

private function onResultHttpServiceDrillDown(e:ResultEvent):void

{

//WRITE THE DRILL DOWN CODE

var dArr:Array = Tools.xmlListToObjectArray(e.result.item);

var mappingArr:Array = new Array(dArr.length);

if (dArr == null)

{

Alert.show("Can not initialize due to NULL data array.");

}

else if (dArr.length == 0)

{

Alert.show("Can not initialize as no data could be retrieved.");

}

else

{

//POPULATE THE MAPPING ARRAY

        // var detailArr:Array = new Array(this.dataArray.length);

for (var i:int = 0; i < dArr.length; i++)

{

mappingArr = new Array(19);

mappingArr["Rando"] = dArr["SUBJECT_NUMBER"];

mappingArr["SID"] = dArr["SCREENING_NUMBER"];

mappingArr["Initials"] = dArr["INITIALS"];

mappingArr["Type"] = dArr["SCHEDULE_PROCEDURE_TYPE"];

mappingArr["Scheduled Start Time"] = dArr["SCHEDULED_START_TIME"];

mappingArr["Scheduled End Time"] = dArr["SCHEDULED_END_TIME"];

mappingArr["Actual Time"] = dArr["ACTUAL_TIME"];

mappingArr["Status"] = dArr["STATUS"];

mappingArr["Flag"] = "";

                    if (dArr["PROCEDURE_STATUS"] == "P")

  mappingArr["Procedure Status"] = "Pending";

                    else if (dArr["PROCEDURE_STATUS"] == "C")

  mappingArr["Procedure Status"] = "Complete";

                    else if (dArr["PROCEDURE_STATUS"] == "I")

  mappingArr["Procedure Status"] = "Incomplete";

}

var dP:ArrayCollection = new ArrayCollection(mappingArr);

//OPEN THE POPUP TITLE WINDOW WITH DATA

//mx.controls.Alert.show("GENERATED ");

    var popupAX:ISYSMonPopUpTable = new ISYSMonPopUpTable(dP);

    //mx.controls.Alert.show("TABLE CREATED ");

   

    var detailedAXWindow:AXGridTitleWindow = new AXGridTitleWindow(popupAX);

        var titleText:Text = new Text();

        var htmlString:String = "<font color='#000000'>Procedure ON TIME</font>&#13;<b><font color='#FF0000'>Procedure LATE</font></b>";

        titleText.htmlText = htmlString;

//mx.controls.Alert.show("WINDOW CREATED ");

    detailedAXWindow.addEventListener(CloseEvent.CLOSE,closePopUp);

    //var detailedPopup:IFlexDisplayObject = PopUpManager.createPopUp(this, Class(detailedAXWindow), true);

    detailedAXWindow.setStyle("borderAlpha",1.0);

               

        detailedAXWindow.height = 380;

        detailedAXWindow.width = 780;

    detailedAXWindow.title = "Study: " + hdrStudyNumber + "     Group: " + hdrStudyGroup + "     Period: " + hdrPeriod + "     Study Day: " + hdrStudyDay +

                             "     Timepoint: " + hdrTimepoint + "     Procedure: " + hdrProcedure;

    detailedAXWindow.setStyle("headerHeight",50);

    detailedAXWindow.setStyle("borderColor","#FFFFFF");

    PopUpManager.addPopUp(detailedAXWindow, this, true);

    PopUpManager.centerPopUp(detailedAXWindow);

}

}

private function closePopUp(e:CloseEvent):void

{

mother.autoFresh.delay = mother.autoRefreshMinute * 60 * 1000;

mother.autoFresh.start();

}

/**

* First column is a flag. Hence, first two column can be locked

*/

override protected function setLockedColumnCount():void

{

super.dataGrid.lockedColumnCount = 2;

}

override public function createDataGrid():AdvancedDataGrid

    {

    var myDGrid:AdvancedDataGrid = new AdvancedDataGrid();

    //myDGrid.itemRenderer = new ClassFactory(com.ppdi.dashboard.view.ADGItemRendererEx);

    myDGrid.dataProvider = super.dataProvider;

myDGrid.id = "detailedGrid";

myDGrid.name ="ISYS Monitoring Table";

var procStatus:AdvancedDataGridColumn = new AdvancedDataGridColumn();

procStatus.headerText = "Procedure Status";

procStatus.dataField = "Procedure Status";

procStatus.headerWordWrap = true;

procStatus.wordWrap = true;

procStatus.width = 80;

var studyNumber:AdvancedDataGridColumn = new AdvancedDataGridColumn();

studyNumber.headerText = "Study Number";

studyNumber.dataField = "Study";

studyNumber.headerWordWrap = true;

studyNumber.wordWrap = true;

studyNumber.width = 80;

var studyGroup:AdvancedDataGridColumn = new AdvancedDataGridColumn();

studyGroup.headerText = "Study Group";

studyGroup.dataField = "Study Group";

studyGroup.headerWordWrap = true;

studyGroup.wordWrap = true;

studyGroup.width = 60;

var period:AdvancedDataGridColumn = new AdvancedDataGridColumn();

period.headerText = "Period";

period.dataField = "Period";

period.width = 60;

var studyDay:AdvancedDataGridColumn = new AdvancedDataGridColumn();

studyDay.headerText = "Study Day";

studyDay.dataField = "Study Day";

studyDay.headerWordWrap = true;

studyDay.width = 60;

var timepoint:AdvancedDataGridColumn = new AdvancedDataGridColumn();

timepoint.headerText = "Timepoint";

timepoint.dataField = "Timepoint";

timepoint.width = 85;

var procName:AdvancedDataGridColumn = new AdvancedDataGridColumn();

procName.headerText = "Procedure";

procName.dataField = "Procedure";

procName.width = 220;

procName.wordWrap = true;

var hasRepeats:AdvancedDataGridColumn = new AdvancedDataGridColumn();

hasRepeats.headerText = "Repeats";

hasRepeats.dataField = "Repeats";

hasRepeats.width = 70;

hasRepeats.wordWrap = true;

var procDate:AdvancedDataGridColumn = new AdvancedDataGridColumn();

procDate.headerText = "Procedure Date";

procDate.headerWordWrap = true;

procDate.dataField = "Procedure Date";

procDate.width = 90;

procDate.wordWrap = true;

var beginTime:AdvancedDataGridColumn = new AdvancedDataGridColumn();

beginTime.headerText = "Begin Time";

beginTime.headerWordWrap = true;

beginTime.dataField = "Begin Time";

beginTime.width = 60;

var endTime:AdvancedDataGridColumn = new AdvancedDataGridColumn();

endTime.headerText = "End Time";

endTime.headerWordWrap = true;

endTime.dataField = "End Time";

endTime.width = 60;

var schedTechs:AdvancedDataGridColumn = new AdvancedDataGridColumn();

schedTechs.headerText = "Scheduled Technicians";

schedTechs.headerWordWrap = true;

schedTechs.dataField = "Scheduled Technicians";

schedTechs.width = 230;

schedTechs.wordWrap = true;

var actualTech:AdvancedDataGridColumn = new AdvancedDataGridColumn();

actualTech.headerText = "Actual Technician / Logon Time";

actualTech.headerWordWrap = true;

actualTech.dataField = "Actual Technician";

actualTech.width = 130;

actualTech.wordWrap = true;

myDGrid.groupedColumns = [procStatus, studyNumber, studyGroup, period, studyDay, timepoint, procName, hasRepeats, procDate, beginTime, endTime, schedTechs, actualTech];

myDGrid.addEventListener(ListEvent.ITEM_CLICK, dataClicked);

myDGrid.styleFunction = styleISYSMonTable;

    return myDGrid;

    }

  public function styleISYSMonTable(data:Object, col:AdvancedDataGridColumn):Object

  {

  var status:String = data["Status"];

  procId = data["procedureId"];

        vInt = data["interval"];   

        hdrStudyNumber = data["Study"];

        hdrStudyGroup = data["Study Group"];

    hdrPeriod = data["Period"];

        hdrStudyDay = data["Study Day"];

        hdrTimepoint = data["Timepoint"];

        hdrProcedure = data["Procedure"].toString().substring(0,25);

        if (status.substring(0,1).toUpperCase() == "L")

     return {color:0xFF0000, fontWeight:"bold"};    

     else

            return null;

  }

    override public function updateDataProvider(dP:ArrayCollection):void

{

//this.clickCount = 0;

super.updateDataProvider(dP);

}

    private function dataClicked(event:ListEvent):void

    {

   

    var selectedColumn:AdvancedDataGridColumn = this.dataGrid.columns[event.columnIndex];

    var arr:Array= super.dataProvider.toArray();

    var value:String = arr[event.rowIndex][selectedColumn.dataField];

        var params:Object = { procedureId: procId , interval: vInt};

mother.autoFresh.stop();

    this.httpServiceDrillDown.send(params);

    }

    override public function getPrintGridColumns():Array

    {

    var flag:AdvancedDataGridColumn = new AdvancedDataGridColumn();

flag.headerText = "Flag";

flag.dataField = "Flag";

flag.width = 30;

   

var studyGroup:AdvancedDataGridColumn = new AdvancedDataGridColumn();

studyGroup.headerText = "Study Group";

studyGroup.dataField = "Study Group";

studyGroup.wordWrap = true;

studyGroup.width = 70;

var period:AdvancedDataGridColumn = new AdvancedDataGridColumn();

period.headerText = "Period";

period.dataField = "Period";

period.width = 70;

var studyDay:AdvancedDataGridColumn = new AdvancedDataGridColumn();

studyDay.headerText = "Study Day";

studyDay.dataField = "Study Day";

studyDay.width = 50;

var timepoint:AdvancedDataGridColumn = new AdvancedDataGridColumn();

timepoint.headerText = "Timepoint";

timepoint.dataField = "Timepoint";

timepoint.width = 50;

var procName:AdvancedDataGridColumn = new AdvancedDataGridColumn();

procName.headerText = "Procedure";

procName.dataField = "Procedure";

procName.width = 80;

procName.wordWrap = true;

var procDate:AdvancedDataGridColumn = new AdvancedDataGridColumn();

procDate.headerText = "Procedure Date";

procDate.dataField = "Procedure Date";

procDate.width = 70;

procDate.wordWrap = true;

var schedTechs:AdvancedDataGridColumn = new AdvancedDataGridColumn();

schedTechs.headerText = "Scheduled Technicians";

schedTechs.dataField = "Scheduled Technicians";

schedTechs.width = 80;

schedTechs.wordWrap = true;

this.printColumns = [flag, studyGroup, period, studyDay, timepoint, procName, procDate, schedTechs];

return this.printColumns;

    }

    override public function getPrintHdr():String

{

return "ISYS Monitoring";

}

}

}

Here's the error message:

Error: Error #1023: Stack overflow occurred.

at mx.controls.listClasses::BaseListData()

at mx.controls.dataGridClasses::DataGridListData()

at mx.controls.advancedDataGridClasses::AdvancedDataGridListData()

at mx.controls.advancedDataGridClasses::AdvancedDataGridBase/makeListData()

at mx.controls::AdvancedDataGrid/makeListData()

at mx.controls::AdvancedDataGrid/createHeaderItems()

at mx.controls::AdvancedDataGrid/createHeaders()

at mx.controls::AdvancedDataGrid/calculateHeaderHeight()

at mx.controls::AdvancedDataGridBaseEx/makeRowsAndColumns()

at mx.controls::AdvancedDataGrid/makeRowsAndColumns()

at mx.controls.listClasses::AdvancedListBase/makeRowsAndColumnsWithExtraRows()

at mx.controls.listClasses::AdvancedListBase/updateDisplayList()

at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()

at mx.controls::AdvancedDataGrid/updateDisplayList()

at mx.core::ScrollControlBase/setScrollBarProperties()

at mx.controls::AdvancedDataGridBaseEx/configureScrollBars()

at mx.controls.listClasses::AdvancedListBase/updateDisplayList()

at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()

at mx.controls::AdvancedDataGrid/updateDisplayList()

at mx.core::ScrollControlBase/setScrollBarProperties()

at mx.controls::AdvancedDataGridBaseEx/configureScrollBars()

at mx.controls.listClasses::AdvancedListBase/updateDisplayList()

at mx.controls::AdvancedDataGridBaseEx/updateDisplayList()

at mx.controls::AdvancedDataGrid/updateDisplayList()

at mx.core::ScrollControlBase/setScrollBarProperties()

Any help will be appreciated

This topic has been closed for replies.

1 reply

Inspiring
October 15, 2009

It may help you, so read this:

http://curtismorley.com/2007/08/19/flashflex-as3-error-1023-stack-overflow-occurred/

And this:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/errors/StackOverflowError.html