views:

246

answers:

5

This is a segment of code from an app I've inherited, a user got a Yellow screen of death "Object reference not set to an instance of an object" on the *bool l_Success* ... line. Now I'm 95% sure the faulty argument is *ref l_Monitor* which is very weird considering the object is instanciated a few lines before. Anyone have a clue why it would happen, note that I have seen the same issue pop up in other places in the code.

        IDMS.Monitor l_Monitor = new IDMS.Monitor();
        l_Monitor.LogFile.Product_ID = "SE_WEB_APP";

        if (m_PermType_RadioButtonList.SelectedIndex == -1) {
            l_Monitor.LogFile.Log(
                Nortel.IS.IDMS.LogFile.MessageTypes.ERROR,
                "No permission type selected"
            );
            return;
        }
        bool l_Success = SE.UI.Utilities.GetPermissionList(
            ref l_Monitor,
            ref m_CPermissions_ListBox,
            (int)this.ViewState["m_Account_Share_ID"],
            (m_PermFolders_DropDownList.Enabled) ? m_PermFolders_DropDownList.SelectedItem.Value : "-1",
            (SE.Types.PermissionType)m_PermType_RadioButtonList.SelectedIndex,
            (SE.Types.PermissionResource)m_PermResource_RadioButtonList.SelectedIndex
        );
+1  A: 

You sure that one of the properties trying to be accessed on the l_Monitor instance isn't null?

Darren Kopp
A: 

Sprinkle in a few variables for all the property-queries on that (loooooongg) line temporarily. Run the debugger, Check values and Corner the little bug.

Gishu
A: 

Assuming this is a very intermittent problem or that it only happens to this one individual, try adding code to log the .ToString() result for each of the arguments just before the function call, and see which one yields an error.

Joel Coehoorn
A: 

I'm inclined to agree with the others; it sounds like one of the parameters you are passing SE.UI.Utilities.GetPermissionList is null which is causing the exception. Your best bet is to fire up the debugger and check was the variables are before that code is called.

Rob
A: 

The NullReferenceException was actually thrown within a catch block so the stack trace couldn't display that line of code so instead it stopped at the caller.

It was indeeed one of the properties of the l_Monitor instance.

Beriadan