BAndysc / BAndysc/WoWDatabaseEditor
Crash when opening the DatabaseEditor
- Dominant language
- C#
- Stars
- 564
- Forks
- 169
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the bug**
I had to reinstall everything on my working laptop, and everytime i try to open the DataBaseEditor i get a Crash.
```
Unity.ResolutionFailedException: Resolution failed with error: Exception has been thrown by the target of an invocation.
For more detailed information run Unity in debug mode: new UnityContainer().AddExtension(new Diagnostic())
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> Unity.ResolutionFailedException: Resolution failed with error: Exception has been thrown by the target of an invocation.
For more detailed information run Unity in debug mode: new UnityContainer().AddExtension(new Diagnostic())
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at WDE.DbcStore.Spells.Tbc.TbcSpellService.get_SpellCount()
at WDE.DbcStore.DbcStore.get_SpellCount()
at WDE.Spells.MergedSpellService.Cache()
at WDE.Spells.MergedSpellService..ctor(ISpellService[] services)
at WDE.Spells.SpellStore..ctor(IDbcSpellService dbcSpellService, IDatabaseSpellService databaseSpellService)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of inner exception stack trace ---
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
at Unity.Processors.ConstructorProcessor.<>c__DisplayClass16_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.UnityContainer.<>c__DisplayClass113_0.b__0(BuilderContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.<>c.<.ctor>b__73_1(BuilderContext& context)
--- End of inner exception stack trace ---
at Unity.UnityContainer.<>c.<.ctor>b__73_1(BuilderContext& context)
at Unity.UnityContainer.Unity.IUnityContainer.Resolve(Type type, String name, ResolverOverride[] overrides)
at WDE.Module.ModuleBase.<>c__DisplayClass8_0.b__0(IUnityContainer c)
at Unity.UnityContainerExtensions.<>c__DisplayClass34_0.b__0(IUnityContainer c, Type t, String n)
at Unity.Injection.InjectionFactory.b__3_2[TContext,TPolicySet](TContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.<>c.<.ctor>b__41_4(BuilderStrategy[] chain, BuilderContext& context)
at Unity.Builder.BuilderContext.Resolve(Type type, String name, InternalRegistration registration)
at Unity.Builder.BuilderContext.Resolve(Type type, String name)
at Unity.Builder.BuilderContext.Resolve(ParameterInfo parameter, Object value)
at Unity.Processors.ParametersProcessor`1.<>c__DisplayClass7_0.b__0(BuilderContext& context)
at Unity.Processors.ConstructorProcessor.<>c__DisplayClass16_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.UnityContainer.<>c__DisplayClass113_0.b__0(BuilderContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.<>c.<.ctor>b__41_4(BuilderStrategy[] chain, BuilderContext& context)
at Unity.Builder.BuilderContext.Resolve(Type type, String name, InternalRegistration registration)
at Unity.UnityContainer.ResolveEnumerable[TElement](Func`4 resolve, String name)+MoveNext()
at WDE.Solutions.Manager.SolutionItemNameRegistry..ctor(IEnumerable`1 providers, IEnumerable`1 asyncProviders)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of inner exception stack trace ---
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
at Unity.Processors.ConstructorProcessor.<>c__DisplayClass16_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.UnityContainer.<>c__DisplayClass113_0.b__0(BuilderContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.<>c.<.ctor>b__41_4(BuilderStrategy[] chain, BuilderContext& context)
at Unity.Builder.BuilderContext.Resolve(Type type, String name, InternalRegistration registration)
at Unity.Builder.BuilderContext.Resolve(Type type, String name)
at Unity.Builder.BuilderContext.Resolve(ParameterInfo parameter, Object value)
at Unity.Processors.ParametersProcessor`1.<>c__DisplayClass7_0.b__0(BuilderContext& context)
at Unity.Processors.ConstructorProcessor.<>c__DisplayClass16_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.Processors.MemberProcessor`2.<>c__DisplayClass8_0.b__0(BuilderContext& c)
at Unity.UnityContainer.<>c__DisplayClass113_0.b__0(BuilderContext& c)
at Unity.Strategies.BuildPlanStrategy.PreBuildUp(BuilderContext& context)
at Unity.UnityContainer.<>c.<.ctor>b__41_3(BuilderContext& context)
--- End of inner exception stack trace ---
at Unity.UnityContainer.<>c.<.ctor>b__41_3(BuilderContext& context)
at Unity.UnityContainer.Unity.IUnityContainer.Resolve(Type type, String name, ResolverOverride[] overrides)
at Prism.Unity.Ioc.UnityContainerExtension.Resolve(Type type)
at WDE.Common.Modules.BaseScopedContainer.Resolve(Type type)
at WDE.Module.ScopedModuleBase.RegisterToParentScope(Assembly assembly, IContainerRegistry parentContainer)
at WDE.Module.ScopedModuleBase.FinalizeRegistration(IContainerRegistry container)
at WDE.MangosEventAiEditor.EventAiModule.FinalizeRegistration(IContainerRegistry container)
at WoWDatabaseEditorCore.Avalonia.App.OnInitializedAsync()
at WoWDatabaseEditorCore.Avalonia.App.OnFrameworkInitializationCompletedAsync()
at WoWDatabaseEditorCore.Avalonia.App.g__Load|25_0()
COMMIT=e93bbca6381c61baa12e5bb92ca1df395e3f56b4
BRANCH=master
VERSION=0.1.2959
BUILD_VERSION=2959
UPDATE_SERVER=https://dbeditor.ovh
MARKETPLACE=default
MAPDATA_SERVER=https://dbeditor.ovh
PLATFORM=Windows
```
**Version (commit hash)**
Please include what was the WoW Database Editor version (commit hash). **If you downloaded binary, open file COMMIT_HASH from the main folder and paste the content in the issue description**
If you have built the binary yourself, check commit hash with `git rev-parse HEAD`
Downloaded the app Yesterday from https://ci.appveyor.com/api/projects/BAndysc/wowdatabaseeditor/artifacts/WoWDatabaseEditorWindows.zip?branch=master
Installed the https://dotnet.microsoft.com/download/dotnet/8.0 SDK 8.0.414 yesterday
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the crash when opening DatabaseEditor using commit e93bbca6381c61baa12e5bb92ca1df395e3f56b4 and follow the stack trace to WDE.DbcStore.Spells.Tbc.TbcSpellService.get_SpellCount(). Trace how that value is reached through WDE.DbcStore.DbcStore, WDE.Spells.MergedSpellService.Cache(), and WoWDatabaseEditorCore.Avalonia.App.OnInitializedAsync(). Done means the editor opens without the reported NullReferenceException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100