Log4net
  1. Log4net
  2. LOG4NET-393

Using dynamic methods with log4net causes NullReferenceException in StackFrameItem

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.2.12
    • Fix Version/s: 1.2.13
    • Component/s: Core
    • Labels:
      None
    • Environment:
      VS2012, Windows 7

      Description

      In our production code we use dynamic methods e.g. when using the factory pattern. We upgraded from 1.2.10 to 1.2.12 and encountered the following exception:

      log4net:ERROR An exception ocurred while retreiving stack frame information.
      System.NullReferenceException: Object reference not set to an instance of an object.
      at log4net.Core.StackFrameItem..ctor(StackFrame frame) in c:\Users\wilfred.dittmer\Documents\Visual Studio 2012\Projects\Log4netLambaExpressionTest\log4net-1.2.12-src\log4net-1.2.12\src\Core\StackFrameItem.cs:line 61

      I created a test project (attached) which shows the exception occuring.
      If the method is:

      {System.Object lambda_method(System.Runtime.CompilerServices.Closure)}

      then one cannot access the DeclaringType. The code then tries to get the FullName of the null value which causes the exception.

      According to: http://msdn.microsoft.com/en-us/library/system.reflection.emit.dynamicmethod.declaringtype.aspx

      "DynamicMethod.DeclaringType: Gets the type that declares the method, which is always null for dynamic methods."

      So it seems best to check if DeclaringType is null and if so leave the m_className set to 'NA'.

        Activity

        Hide
        Dominik Psenner added a comment -

        Gotcha, I'm looking into this right now.

        Show
        Dominik Psenner added a comment - Gotcha, I'm looking into this right now.
        Hide
        Dominik Psenner added a comment - - edited

        Fixed as of revision: 1528110

        Sorry for the inconvenience. Would you please try if the issue is fixed in svn?

        Show
        Dominik Psenner added a comment - - edited Fixed as of revision: 1528110 Sorry for the inconvenience. Would you please try if the issue is fixed in svn?
        Hide
        W.R. Dittmer added a comment - - edited

        Thanks, we'll wait for the next official release and stick to 1.2.10 in the mean time.

        Applied patch to the attached test project and it now runs.
        Applied patch to production code, which now also runs.

        Show
        W.R. Dittmer added a comment - - edited Thanks, we'll wait for the next official release and stick to 1.2.10 in the mean time. Applied patch to the attached test project and it now runs. Applied patch to production code, which now also runs.
        Hide
        Dominik Psenner added a comment -

        Thanks for trying it out! I'm closing the issue now.

        Show
        Dominik Psenner added a comment - Thanks for trying it out! I'm closing the issue now.
        Hide
        Philip Lee added a comment -

        I've just hit the same issue. It occurs in ASP.NET FormView when one of the attached methods is called, e.g. UpdateMethod="foo".
        When will the fix be available on NuGet?

        Show
        Philip Lee added a comment - I've just hit the same issue. It occurs in ASP.NET FormView when one of the attached methods is called, e.g. UpdateMethod="foo". When will the fix be available on NuGet?
        Show
        Dominik Psenner added a comment - http://logging.apache.org/log4net/release/faq.html#nuget
        Hide
        Stefan Bodewig added a comment -

        The vote to release 1.2.13 is currently underway and it will likely be released in afew days. When/if a Nuget package is created is outside of our control.

        Show
        Stefan Bodewig added a comment - The vote to release 1.2.13 is currently underway and it will likely be released in afew days. When/if a Nuget package is created is outside of our control.

          People

          • Assignee:
            Unassigned
            Reporter:
            W.R. Dittmer
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development