goutamadwant opened a new pull request, #12305:
URL: https://github.com/apache/seatunnel/pull/12305
<!-- PR title: [Fix][API] Correct nested row byte accounting -->
### Purpose of this pull request
Fixes #12304.
Correct two shared `SeaTunnelRow` accounting paths: skip null elements in
map arrays and include row-array contents using the existing schema-aware
recursion.
Add regressions for API call order, JSON decoding, single-table/multi-table
source collection, and an embedded batch job. Update the English and Chinese
byte-limit documentation.
### Does this PR introduce _any_ user-facing change?
Yes. On the tested dev baseline:
- `ARRAY<MAP<STRING, INT>>` containing `[null, {"a": 1}]` returns 5
estimated bytes instead of throwing `NullPointerException` during accounting.
- An integer plus `ARRAY<ROW<value STRING>>` containing `"abcd"` returns 8
estimated bytes instead of caching 4.
No public API, serialized layout, configuration defaults, dependencies, or
row payloads change. Affected byte metrics and byte-limit permit usage can
increase; throughput under the same byte limit may decrease. Estimates retain
their existing conventions and are not exact serialized/network byte counts.
### How was this patch tested?
- Reproduced the three new API regressions against unchanged production code
on Java 8 and Java 11: two assertion failures and one null-pointer error.
- API/JSON dependency reactor: 523 tests passed on each JDK.
- Focused collector, metrics, and rate-limiter checks passed. The embedded
batch job finished on both JDKs with 3 records and 17 estimated bytes at source
and sink.
- Repository-wide `spotless:apply` passed; Java 11 `./mvnw -q -DskipTests
verify` passed.
With `JAVA_HOME` set to the target JDK:
```sh
./mvnw -B -pl seatunnel-api,seatunnel-formats/seatunnel-format-json -am
verify
./mvnw -B -pl seatunnel-engine/seatunnel-engine-server -am \
'-Dtest=SeaTunnelRowTest,JsonRowDataSerDeSchemaTest,SeaTunnelSourceCollector*Test,ConnectorMetricsCalcContextTest,FlowControlGateTest,NestedRowAccountingTest'
\
-Dsurefire.failIfNoSpecifiedTests=false -Dskip.ui=true verify
```
Java versions: Oracle 1.8.0_172 and Temurin 11.0.19. The Java 8 batch test
was rerun separately after correcting its configuration fixture. Full connector
E2E suites and external Gravitino validation were not run; row-array coverage
uses the schema API, JSON decoder, and collectors.
### Check list
* [x] No new Jar packages or license notices required.
* [x] Updated English and Chinese documentation.
* [x] No incompatible API/configuration changes requiring an
`incompatible-changes.md` entry; observable accounting changes are described
above.
* [x] No connector registration, distribution, or plugin mapping changes
required.
--
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]