You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter "FullyQualifiedName~RazorEngineService_TestEnumeratingDynamicObject" --framework netcoreapp2.0
Expected
It passes. It passes when executed on .NET 4.6.2 and used to work on .NET Core 2.0 preview.
dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter "FullyQualifiedName~RazorEngineService_TestEnumeratingDynamicObject" --framework net462
Actual
Test fails with a NullReferenceException. I checked the output binaries for .NET 4.6.2 and .NET Core 2.0. They appear exactly the same, aside from references to .NET Framework in the first case and the .NET Core references in the other. (The files are output to a folder like: %TEMP%\RazorEngine_.)
Test Name: RazorEngineService_TestEnumeratingDynamicObject
Test FullName: Test.RazorEngine.RazorEngineServiceTestFixture.RazorEngineService_TestEnumeratingDynamicObject
Test Source: D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs : line 516
Test Outcome: Failed
Test Duration: 0:00:00.114
Result Message: System.NullReferenceException : Object reference not set to an instance of an object.
Result StackTrace:
at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.GroupToArgsBinder.LookForCandidates()
at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.BindMethodGroupToArgumentsCore(GroupToArgsBinderResult& pResults, BindingFlag bindFlags, ExprMemberGroup grp, Expr& args, Int32 carg, Boolean bindingCollectionAdd, Boolean bHasNamedArgumentSpecifiers)
at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.BindMethodGroupToArguments(BindingFlag bindFlags, ExprMemberGroup grp, Expr args)
at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCall(ICSharpInvokeOrInvokeMemberBinder payload, Expr callingObject, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding)
at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding)
at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError)
at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.FallbackInvokeMember(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion)
at System.Dynamic.DynamicMetaObject.BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args)
at System.Dynamic.InvokeMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args)
at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel)
at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberTargetType[TTarget,TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, TTarget target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper.cs:line 317
at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMember[TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 298
at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberCallSite(Object target, String_OR_InvokeMemberName name, Object[] args, String[] tArgNames, Type tContext, Boolean tStaticContext, CallSite& callSite) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 445
at RazorEngine.Compilation.ImpromptuInterface.Impromptu.InvokeMember(Object target, String_OR_InvokeMemberName name, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Impromtu.cs:line 179
at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.Invoke(Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 242
at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.InvokeWithStoredArgs(Object target) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 302
at RazorEngine.Compilation.RazorDynamicObject.MarshalWrapper.GetResult(Invocation invocation) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 140
at RazorEngine.Compilation.RazorDynamicObject.RemoteInvoke(Invocation invocation, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 462
at RazorEngine.Compilation.RazorDynamicObject.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 600
at CallSite.Target(Closure , CallSite , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
at ActLike_IList`1_36f0a2eb9ada4306abe097de77b83502.System.Collections.IEnumerable.GetEnumerator()
at CompiledRazorTemplates.Dynamic.RazorEngine_cab742326b86467eb2301cbfdbe904d9.<Execute>d__1.MoveNext() in C:\Users\conniey\AppData\Local\Temp\RazorEngine_hudttqnr.3fz\CompiledRazorTemplates.Dynamic.RazorEngine_cab742326b86467eb2301cbfdbe904d9.cs:line 3
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at RazorEngine.Templating.TemplateBase.<Run>d__32.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\TemplateBase.cs:line 230
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at RazorEngine.Templating.RazorEngineCore.<RunTemplate>d__12.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineCore.cs:line 155
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 278
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 257
at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\DynamicWrapperService.cs:line 102
at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 142
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 222
at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254
at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 326
at Test.RazorEngine.RazorEngineServiceTestFixture.<>c.<RazorEngineService_TestEnumeratingDynamicObject>b__22_0(IRazorEngineService service) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 527
at Test.RazorEngine.RazorEngineServiceTestFixture.RunTestHelper(Action`1 test, Action`1 withConfig) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 49
at Test.RazorEngine.RazorEngineServiceTestFixture.RazorEngineService_TestEnumeratingDynamicObject() in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 517
The text was updated successfully, but these errors were encountered:
Interestingly, when I try the instructions above I get an AoRE in what is clearly another case of #22544, but when I run all the tests I get this one and another throwing NRE as reported, along with two AoRE. This leads me to suspect that it's #22544 to blame, but this is caused by the state it leads behind.
I haven't 100% ruled out there being something else involved, but that is certainly part of the issue, but I have about 1% doubt that there could be something else on top.
When I get a chance to experiment further I'll make a note here confirming or open a more detailed issue, accordingly.
Repro Steps
Execute the following:
Expected
It passes. It passes when executed on .NET 4.6.2 and used to work on .NET Core 2.0 preview.
Actual
Test fails with a NullReferenceException. I checked the output binaries for .NET 4.6.2 and .NET Core 2.0. They appear exactly the same, aside from references to .NET Framework in the first case and the .NET Core references in the other. (The files are output to a folder like: %TEMP%\RazorEngine_.)
The text was updated successfully, but these errors were encountered: