Kafka: Filter empty strings and whitespace in IcebergSinkConfig stringToList
メンテナーはふだん 1 日以内に返信
評価
調査の方向性
IcebergSinkConfig.stringToList() と testStringToList、testStringWithParensToList メソッドを見つけてください。issue にはそれらのファイルパスが記載されていません。まずパーサーと既存のテストを読み、その後それらのテストを実行してください。空白だけの入力と、連続または末尾の区切り文字による空要素が除外され、記載されたケースがテストでカバーされていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Apache Iceberg version
1.12.0 (latest release)
Query engine
None
Please describe the bug 🐞
Problem
IcebergSinkConfig.stringToList() previously only checked for value == null || value.isEmpty(). When provided with whitespace-only strings, consecutive delimiters (e.g., col1, , col2), or trailing commas (e.g., col1, ), it retained empty string elements (""). This caused downstream operations like table.schema().findField("") or the PartitionSpec builder to fail unexpectedly with IllegalArgumentException: ID column not found: or unsupported transforms. Additionally, the testStringWithParensToList method was left unimplemented.
Solution
- Add whitespace check (
value.trim().isEmpty()) inIcebergSinkConfig.stringToList(). - Filter out empty elements (
.filter(s -> !s.isEmpty())) after trimming individual items. - Implement comprehensive test cases including whitespace and empty element handling in
testStringToListandtestStringWithParensToList.
Willingness to contribute
- I can contribute a fix for this bug independently
- I would be willing to contribute a fix for this bug with guidance from the Iceberg community
- I cannot contribute a fix for this bug at this time
- 主要言語
- Java
- スター
- 9.3k
- フォーク
- 3.6k
- 平均マージ
- 2日 8時間
- マージ済み PR(30日)
- 143
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/iceberg のほかの issue
-
Parquet TIME_MILLIS statistics are not converted to microseconds対応中かも @chenjian2664 が 9 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
Temporal transforms put pre-epoch timestamps at `.999999` into the previous unit対応中かも @gitedmond が 16 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/iceberg#18371 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
OpenAPI: Remove deprecated TrueExpression and FalseExpression対応中かも @zhang-arvin が 12 日前に担当しました。 オープンimprovement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/iceberg#18351 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
Parquet: StringReader decodes every occurrence of a dictionary value into a new String対応中かも @Neuw84 が 26 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/iceberg#18259 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
RCK tests fail to bind port 8181 when run alongside the kafka-connect integration stack対応中かも @Kurtiscwright が 28 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
ChaosEngine: backup-remote doctor row passes while consumer mode hides bot memory from git対応中かも @MohabMohie が今日担当しました。 オープンagentic
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
ShaftHQ/SHAFT_ENGINE#7263 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
bug/错误
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
FCL-Team/FoldCraftLauncher#1951 ·
メンテナーはふだん 4 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
quarkusio/quarkus-agent-mcp#296 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
commons-app/apps-android-commons#7072 ·
メンテナーはふだん 1 日以内に返信