0

I am getting the following error.

NullReferenceException: Object reference not set to an instance of an object.

Which I think means there is a null object where there should be. However I've checked the db and can't find anywhere it would be a problem. Is it possible to read where the problem is coming from by using the stack trace?

It works locally on my own db, but when using the public db, I get this error.

Stack Trace:

<code>[NullReferenceException: Object reference not set to an instance of an object.]
   HolidayTracker.Controllers.<>c.<GetUserInShift>b__2_2(Employee e) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:771
   System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) +88
   System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) +137
   System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) +21
   System.Linq.<GetEnumerator>d__1.MoveNext() +221
   System.Linq.WhereEnumerableIterator`1.MoveNext() +170
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +387
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   HolidayTracker.Controllers.CalendarController.GetUserInShift(String searchName, String searchSite, String searchArea, String searchDiscipline, String searchShift, Shift shift) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:769
   HolidayTracker.Controllers.CalendarController.Index(String searchName, String searchArea, String searchDiscipline, Nullable`1 year, Nullable`1 month, String acc, String searchSite, String searchShift) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:102
   lambda_method(Closure , ControllerBase , Object[] ) +415
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +169
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
   System.Web.Mvc.Async.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
   System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58
   System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228
   System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
   System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() +35
   System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45
   System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9874041
   System.Web.<>c__DisplayClass285_0.<ExecuteStepImpl>b__0() +26
   System.Web.StepInvoker.Invoke(Action executionStep) +101
   System.Web.<>c__DisplayClass4_0.<Invoke>b__0() +22
   Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule.OnExecuteRequestStep(HttpContextBase context, Action step) +64
   System.Web.<>c__DisplayClass284_0.<OnExecuteRequestStep>b__0(Action nextStepAction) +54
   System.Web.StepInvoker.Invoke(Action executionStep) +85
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +9980101
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159
</code> 

Here is line that is causing the ecxeption

   private static List<Employee> GetUserInShift(string searchName, string searchSite, string searchArea, string searchDiscipline,string searchShift, Shift shift)
    {


                return

                shift.Employees.Where(e => e.ActiveStatus == "Yes").OrderBy(e => e.Area.Area1).ThenBy(e => e.Discipline.Discipline1).ThenBy(e => e.FullName).Where(e => (e.Site.SiteName == searchSite || searchSite == null || searchSite == "")
                && (e.Area.Area1 == searchArea || searchArea == null || searchArea == "")
                && (e.FullName == searchName || searchName == null || searchName == "")
                && (e.Shift.Shift1 == searchShift || searchShift == null || searchShift == "")
                && (e.Discipline.Discipline1 == searchDiscipline || searchDiscipline == null || searchDiscipline == ""))
                .ToList();

        }

Here is the object:

  List<Employee> userInThisShifts = GetUserInShift(searchName,searchSite, searchArea, searchDiscipline, searchShift, shift);
Conor8630
  • 345
  • 1
  • 17
  • _" Is it possible to read where the problem is coming from by using the stack trace?"_ - did you try looking at, and setting a breakpoint at, `CalendarController.cs`, line 771 as the stack trace indicates? – CodeCaster May 24 '19 at 10:12
  • @CodeCaster I've added the lines of code. Would `GetUserInShift` be the null Object? – Conor8630 May 24 '19 at 10:38
  • As CodeCaster is suggesting, if you use the visual studio debugger to stop the code at the relevant line, you can check the values of the variables yourself. The code you've shown us doesn't actually contain an object called GetUserInShift. There's a method by that name, but not a variable. More likely something within the method is null. Since it's all a one-liner it's hard to say what just by looking at it. That's what your debugger is for... – ADyson May 24 '19 at 10:40
  • @ADyson Okay, however the code works fine on my local machine, the error is only being thrown when the app is online using different Data. – Conor8630 May 24 '19 at 10:46
  • I've added the object – Conor8630 May 24 '19 at 10:47
  • well then you need to maybe look in the database and see what the difference in the data is which would be returned by the query. Then re-create that data in your testing database on the local machine and use the debugger to see what issue occurs when you run it, – ADyson May 24 '19 at 11:03

0 Answers0