Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

My Error #1010 situation

Edit 3: Alright, I'm lighting up a Windows Server 2008 R2 VM, installing Flex Builder 3, and seeing if I can get a new project to compile and execute properly. News! I got the IDE up and running in the VM and I STILL got the same exact error after the code compiled without issue! Here comes a big, emphatic double you tee eff.

Edit 2: Since this has gotten to be a pretty long post I'll put this up here. I just went through and deleted each portion of the two problem lines individually and tried to compile after each one, and I got the error every single time. I even deleted everything from within the two DataGridColumns and it still didn't compile, even though commenting out the two empty <mx:DataGridColumn /> lines will let the program load! This is driving me nuts, can anyone shed some light on this for me?
/Edit 2

I have an AIR application which will apparently compile just fine when I hit F5, but before the app has a chance to load I get the following error:

My error message.

By commenting out blocks of code I've narrowed the problem down to two specific lines.

<mx:DataGrid id="grid1" width="100%" height="100%" editable="false">
    <mx:columns>
        <mx:DataGridColumn headerText="Symbol"                      dataField="Symbol"             headerWordWrap="true" width="100" textAlign="left"/>
        <mx:DataGridColumn headerText="Description"                 dataField="FullName"           headerWordWrap="true" width="150" textAlign="left"/>
        <mx:DataGridColumn headerText="Trans"                       dataField="TransactionCode"    headerWordWrap="true" width="75"  textAlign="center"/>
        <mx:DataGridColumn headerText="Quantity"                    dataField="Quantity"           headerWordWrap="true" width="50"  textAlign="right"  labelFunction="formatUtil3"/>
        <mx:DataGridColumn headerText="Execution Date"              dataField="ExecutionDate"      headerWordWrap="true" width="80"  textAlign="center"/>
        <mx:DataGridColumn headerText="Execution Price"             dataField="ExecutionPrice"     headerWordWrap="true" width="65"  textAlign="right"  labelFunction="formatUtil1"/>
        <mx:DataGridColumn width="15" backgroundColor="0x888888" dataField="blank1" headerText=""/>
        <mx:DataGridColumn headerText="Previous Business Day"       dataField="PreviousDate"       headerWordWrap="true" width="80"  textAlign="center"                             itemRenderer="PD5"/>
<!---->     <mx:DataGridColumn headerText="Previous Business Day Price" dataField="PreviousDatePrice"  headerWordWrap="true" width="65"  textAlign="right"  labelFunction="formatUtil1" itemRenderer="PD5"/>
<!---->     <mx:DataGridColumn headerText="% Difference"                dataField="PreviousDateDelta"  headerWordWrap="true" width="65"  textAlign="right"  labelFunction="formatUtil2" itemRenderer="PD5"/>
        <mx:DataGridColumn headerText="Source"                      dataField="PreviousDateSource" headerWordWrap="true" width="100" textAlign="left"                               itemRenderer="PD5"/>
        <mx:DataGridColumn width="15" backgroundColor="0x888888" dataField="blank2" headerText=""/>
        <mx:DataGridColumn headerText="Previous Month End"          dataField="PrevMonthEndDate"   headerWordWrap="true" width="80"  textAlign="center"                             itemRenderer="PME5"/>
        <mx:DataGridColumn headerText="Previous Month End Price"    dataField="PrevMonthEndPrice"  headerWordWrap="true" width="65"  textAlign="right"  labelFunction="formatUtil1" itemRenderer="PME5"/>
        <mx:DataGridColumn headerText="% Difference"                dataField="PrevMonthEndDelta"  headerWordWrap="true" width="65"  textAlign="right"  labelFunction="formatUtil2" itemRenderer="PME5"/>
        <mx:DataGridColumn headerText="Source"                      dataField="PrevMonthEndSource" headerWordWrap="true" width="100" textAlign="left"                               itemRenderer="PME5"/>
    </mx:columns>
</mx:DataGrid>

The two lines are marked with <!---->. If I comment those two lines out then the app will compile, run, and display properly, but if I leave either of them active I get the error above.

What is going on here?

Edit: Additional code as requested -

<mx:CurrencyFormatter id="format1" precision="5" useNegativeSign="false"/>
<mx:NumberFormatter   id="format2" precision="2"/>

And the functions -

private function formatUtil1(item:Object, column:DataGridColumn):String
{
    var Field:Object = item[column.dataField];
    return format1.format(Field);
}

private function formatUtil2(item:Object, column:DataGridColumn):String
{
    var Field:Object = item[column.dataField];
    return format2.format(Field);
}

Next the .as file for PD5 -

package
{
    import mx.controls.Label;
    import mx.controls.listClasses.*;

    public class PD5 extends Label
    {
        private const POSITIVE_COLOR:uint = 0x000000; // Black
        private const NEGATIVE_COLOR:uint = 0xFF0000; // Red 

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            setStyle("color", (data.PreviousDateDelta >= 5 || data.PreviousDateDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);
        }
    }
}

And now PME5.as -

package
{
    import mx.controls.Label;
    import mx.controls.listClasses.*;

    public class PME5 extends Label
    {
        private const POSITIVE_COLOR:uint = 0x000000; // Black
        private const NEGATIVE_COLOR:uint = 0xFF0000; // Red

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            setStyle("color", (data.PrevMonthEndDelta >= 5 || data.PrevMonthEndDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);
        }
    }
}
like image 547
newuser Avatar asked Aug 16 '11 20:08

newuser


1 Answers

Run the application in debug mode. When there is an error, Flex builder (Flash Builder 4.5 is the newest version) will break and take you to the line of code that is causing a problem. This is occuring because some object whose property you are trying to access is actually null.

You can browse up and down the call tree in the debug window (Window menu>debug) and that way you can find out which object is null.

Mostly this is happening because the dataprovider is not complete, i.e. some data is missing. for example one row might not have a previous day business price. If this is the case then you need to handle the null item in your formatUtil functions

var field:Object=item[column.dataField];
if(field!=null) {
    return format1.format(field);
} else {
    return "";
}

EDIT:
Also check these two lines:

setStyle("color", (data.PrevMonthEndDelta >= 5 || data.PrevMonthEndDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);

and

setStyle("color", (data.PreviousDateDelta >= 5 || data.PreviousDateDelta <= -5) ? NEGATIVE_COLOR : POSITIVE_COLOR);

It's possible that the error comes from data.PreviousDateDelta or data.PrevMonthEndDelta

like image 94
Pranav Hosangadi Avatar answered Oct 18 '22 15:10

Pranav Hosangadi