Skip to content

Commit ad93f61

Browse files
author
andrey.leskov
committed
Fixed stack overflow on container dispose
1 parent a0d9559 commit ad93f61

3 files changed

Lines changed: 24 additions & 3 deletions

File tree

GridDomain.Domain.Tests/CompositionRootTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,28 @@ public void All_base_registrations_can_be_resolved(TransportMode transportMode)
2323
ResolveAll(container);
2424
}
2525

26+
27+
[TestCase(TransportMode.Cluster)]
28+
[TestCase(TransportMode.Standalone)]
29+
public void Container_can_be_disposed()
30+
{
31+
var container = CreateContainer(TransportMode.Standalone, new LocalDbConfiguration());
32+
var registrations = container.Registrations.ToArray();
33+
34+
foreach (var reg in registrations)
35+
{
36+
Console.WriteLine("Registration");
37+
Console.WriteLine(reg.Name);
38+
Console.WriteLine(reg.MappedToType);
39+
Console.WriteLine(reg.RegisteredType);
40+
Console.WriteLine("end of registration");
41+
Console.WriteLine();
42+
}
43+
44+
container.Dispose();
45+
}
46+
47+
2648
protected abstract IUnityContainer CreateContainer(TransportMode mode, IDbConfiguration conf);
2749

2850
private void ResolveAll(IUnityContainer container)

GridDomain.Domain.Tests/DependencyInjection/AggregatesDI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ protected override GridDomainNode CreateGridDomainNode(AkkaConfiguration akkaCon
3232
var container = new UnityContainer();
3333

3434
container.RegisterType<ITestDependency, TestDependencyImplementation>();
35-
container.RegisterInstance<IUnityContainer>(container);
35+
// container.RegisterInstance<IUnityContainer>(container);
3636
container.RegisterInstance<IQuartzConfig>(new InMemoryQuartzConfig());
3737
container.RegisterAggregate<TestAggregate,TestAggregatesCommandHandler>();
3838

GridDomain.Node/CompositionRoot.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ public static void Init(IUnityContainer container,
3737

3838
container.RegisterType<IHandlerActorTypeFactory, DefaultHandlerActorTypeFactory>();
3939
container.RegisterType<IAggregateActorLocator, DefaultAggregateActorLocator>();
40-
container.RegisterInstance<ActorSystem>(actorSystem);
41-
container.RegisterInstance(container);
40+
container.RegisterInstance(actorSystem);
4241

4342
//TODO: replace with better implementation
4443
Scheduling.CompositionRoot.Compose(container, config ?? new PersistedQuartzConfig());

0 commit comments

Comments
 (0)