I'm in support of just converting the NPE for now into a clearer message
and finally finishing RepairMetadata/Manifests or whatever we have so folks
can get those stats back into their manifests.

On Fri, Sep 12, 2025 at 1:04 PM Christian Thiel <christian.t.b...@gmail.com>
wrote:

> Dear all,
> while implementing v3 support in Rust, I noticed an unhandled case in
> Java, which, Java beeing Java, leads to a NullPointerException.
>
> In V1 tables, existing_rows_count and added_rows_count is optional. When
> parsed into a GenericManifestFile, it is thus parsed as optional.
>
> When this (data) manifest is now added to a new Snapshot in a V3 table, we
> get a NullPointerException.
>
> I talked with Russel and we believe the proper way forward is to fail via
> a validation. Please note this only affects very old V1 tables, as newer V1
> clients produce these fields.
>
> More details, the proposed fix, and a test are in this PR:
> https://github.com/apache/iceberg/pull/14064
>
> Do we need a Vote for this? Also, we should probably put more work into
> the RepairMetadata PR, as this would be the way to fix it.
>
> Best,
> Christian
>

Reply via email to