BAndysc / BAndysc/WoWDatabaseEditor

Crash when opening the DatabaseEditor

Open
#262 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.