Commit 36747e2
committed
fix(mongock-importer): skip IGNORED audit entries safely
`MongockImporterMongoDB.toAuditEntry` returns `null` for entries whose
state is `IGNORED` (via `MongockAuditEntry.shouldBeIgnored()`), but the
returned list is iterated downstream without a null check. Booting an
application against a Mongock audit history containing an `IGNORED`
entry therefore crashed with:
NullPointerException: Cannot invoke
"AuditEntry.getSystemChange()" because "auditEntryFromOrigin" is null
inside the `migration-mongock-to-flamingock-community` system change.
Changes:
- **MongockImporterMongoDB**: filter `null`s out of the stream produced
by `getAuditHistory()` and emit an INFO log when an entry is dropped
because of `IGNORED`. The skipped entry's `changeId` is reported so
operators know which legacy change was bypassed.
- **MongockImportChange**: defensive null-filter at the caller so the
same protection applies to any current or future
`AuditHistoryReader` implementation (Couchbase, DynamoDB).
- **MongoDBImporterTest**: regression test seeding the basic scenario
plus one `IGNORED` entry. Asserts the `IGNORED` entry is absent from
the Flamingock audit store and the rest of the audit history imports
normally.
No public API change. Behavior is purely additive (null-safety + log)
relative to the previous code path.1 parent 8548e78 commit 36747e2
3 files changed
Lines changed: 73 additions & 1 deletion
File tree
- legacy
- mongock-importer-mongodb/src
- main/java/io/flamingock/importer/mongock/mongodb
- test/java/io/flamingock/importer/mongock/mongodb
- mongock-support/src/main/java/io/flamingock/support/mongock
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
24 | 26 | | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
| 38 | + | |
| 39 | + | |
35 | 40 | | |
36 | 41 | | |
37 | 42 | | |
| |||
44 | 49 | | |
45 | 50 | | |
46 | 51 | | |
| 52 | + | |
47 | 53 | | |
48 | 54 | | |
49 | 55 | | |
| |||
55 | 61 | | |
56 | 62 | | |
57 | 63 | | |
| 64 | + | |
| 65 | + | |
58 | 66 | | |
59 | 67 | | |
60 | 68 | | |
| |||
Lines changed: 59 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
498 | 498 | | |
499 | 499 | | |
500 | 500 | | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
501 | 560 | | |
502 | 561 | | |
503 | 562 | | |
| |||
Lines changed: 6 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
61 | 63 | | |
62 | 64 | | |
63 | 65 | | |
64 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
65 | 70 | | |
66 | 71 | | |
67 | 72 | | |
| |||
0 commit comments