0

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 line:

bool l_Success ... 

Now I'm 95% sure the faulty argument is ref l_Monitor which is very weird considering the object is instantiated 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);
Cœur
  • 37,241
  • 25
  • 195
  • 267
Beriadan
  • 109
  • 2
  • 6
  • See also [What is a NullReferenceException in .NET?](http://stackoverflow.com/q/4660142/90527) – outis Mar 29 '12 at 01:13

4 Answers4

1

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

Darren Kopp
  • 76,581
  • 9
  • 79
  • 93
0

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
  • 134,492
  • 47
  • 225
  • 308
0

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.

rjzii
  • 14,236
  • 12
  • 79
  • 119
0

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 indeed one of the properties of the l_Monitor instance.

BartoszKP
  • 34,786
  • 15
  • 102
  • 130
Beriadan
  • 109
  • 2
  • 6