jbonofre opened a new pull request, #2790:
URL: https://github.com/apache/karaf/pull/2790
Backport of #2787 to `karaf-4.4.x`.
## What
Makes `org.apache.karaf.itests.examples.JdbcExampleTest` robust so it no
longer fails intermittently on CI (observed on the `test (windows-latest)` job).
## Why it was failing
The test hard-coded the booking id (`1`) and asserted on a shared literal
flight code (`AF520`):
1. The commands (`booking:add/list/get/remove`) are registered
asynchronously as independent SCR components. On the slower Windows runner, the
freshly-created shell session hit a registration race and `booking:remove`
threw `CommandNotFoundException`.
2. That tripped the whole-method `@Retry` in `KarafTestSupport`, which
re-runs `test()`. But the example stores bookings in an `AUTO_INCREMENT` H2
table that persists across runs of the same Karaf instance, so the rerun's
`booking:add` got id `2` while id `1`'s `AF520` row lingered.
3. `booking:remove 1` + `assertContainsNot("AF520")` then failed
**deterministically**.
## The fix
- Use a **unique flight code** per run (`"AF" + System.currentTimeMillis()`)
so leftover rows from a previous/retried run cannot disturb the assertions.
- Resolve the **actual auto-incremented id** from the `booking:list` output
instead of assuming `1`, and remove exactly that row.
Test-only change. Cherry-picked cleanly from the original commit.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]