aglinxinyuan opened a new issue, #5551:
URL: https://github.com/apache/texera/issues/5551
## Background
Two utility modules in `engine/common` currently lack a dedicated unit-spec:
| Source class | Purpose |
| --- | --- |
| `FutureBijection` | Implicit-class extensions converting between Twitter
`Future` and Scala `Future` (both success and failure paths) — used wherever
the engine bridges twitter-util-based RPC with scala-future-based code |
| `ElidableStatement` | Tiny logging helper that wraps by-name blocks in
`scala.annotation.elidable` so they compile away below the configured level |
## Behavior to pin
### `FutureBijection`
| Surface | Contract |
| --- | --- |
| `TwitterFuture.value.asScala` | resolves to the same value |
| `TwitterFuture.exception.asScala` | resolves with the same `Throwable`
(preserves exception type + message) |
| `ScalaFuture.successful.asTwitter` | resolves to the same value |
| `ScalaFuture.failed.asTwitter` | resolves with the same `Throwable` |
| both directions | preserve null-vs-value semantics on the value path |
### `ElidableStatement`
| Surface | Contract |
| --- | --- |
| `info` / `fine` / `finer` / `finest` | execute the by-name argument when
called (side effects observable) |
| each method | accepts a by-name block — verified via a captured counter
being incremented |
| return type | `Unit` (compile-time enforced) |
## Scope
- New spec files (one per source class per the spec-filename convention):
- `FutureBijectionSpec.scala`
- `ElidableStatementSpec.scala`
- No production-code changes.
- `FutureBijection` spec uses `Await.result` / `Await.ready` with a short
timeout to drive the underlying futures to completion.
--
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]