Commit 6aec2f4
committed
fix(akka): defensive ctor + per-actor mailbox in the harbour sample
Two related fixes for the global-default-mailbox bootstrap NRE:
- BowireAkkaExtension.ctor now wraps the DeadLetterListener spawn
+ EventStream subscribe in try/catch. When the BowireTapMailbox
is wired as the *global* default-mailbox, it gets instantiated
for the root guardian during bootstrap and triggers Apply on the
extension before the actor system is itself navigable, which
NREs inside SystemActorOf. We swallow that one path and leave
_deadLetterListener null — the live mailbox tap still works,
only dead-letter capture goes silent in that config.
- Harbour sample now uses the surgical per-actor opt-in instead
of the global default-mailbox swap. Defines a named mailbox
(akka.actor.bowire-tap) and tags the three application actors
with .WithMailbox(...). Avoids the bootstrap entanglement
entirely and is what the README recommends for production use.1 parent 37de317 commit 6aec2f4
2 files changed
Lines changed: 46 additions & 14 deletions
File tree
- samples/Kuestenlogik.Bowire.Protocol.Akka.Sample
- src/Kuestenlogik.Bowire.Protocol.Akka
Lines changed: 14 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
24 | 30 | | |
25 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
26 | 34 | | |
27 | 35 | | |
28 | 36 | | |
| |||
38 | 46 | | |
39 | 47 | | |
40 | 48 | | |
41 | | - | |
42 | | - | |
43 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
44 | 54 | | |
45 | 55 | | |
46 | 56 | | |
| |||
Lines changed: 32 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
58 | 77 | | |
59 | 78 | | |
60 | 79 | | |
| |||
63 | 82 | | |
64 | 83 | | |
65 | 84 | | |
66 | | - | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
67 | 89 | | |
68 | 90 | | |
69 | 91 | | |
| |||
0 commit comments