Skip to content

Azure: Translate not-found errors in ADLSInputStream mid-stream reads#17064

Open
thswlsqls wants to merge 1 commit into
apache:mainfrom
thswlsqls:fix/adls-inputstream-translate-not-found-on-read
Open

Azure: Translate not-found errors in ADLSInputStream mid-stream reads#17064
thswlsqls wants to merge 1 commit into
apache:mainfrom
thswlsqls:fix/adls-inputstream-translate-not-found-on-read

Conversation

@thswlsqls

Copy link
Copy Markdown
Contributor

Closes #17062

Summary

Testing done

  • Added TestADLSInputStream#readTranslatesNotFoundOnMidStreamRead and #readBufferTranslatesNotFoundOnMidStreamRead, covering read() and read(byte[], int, int) throwing NotFoundException when the mocked stream raises an IOException wrapping a BlobStorageException with x-ms-error-code: BlobNotFound.
  • ./gradlew :iceberg-azure:test --tests "org.apache.iceberg.azure.adlsv2.TestADLSInputStream" — 6 tests passed.
  • ./gradlew :iceberg-azure:spotlessCheck :iceberg-azure:checkstyleMain :iceberg-azure:checkstyleTest — passed. (:iceberg-azure:check also runs integrationTest, which requires Docker/Azurite and was not available in this environment, so unit test/style/checkstyle were verified separately as shown above.)
  • revapi: not applicable (azure module is outside REVAPI scope).

ADLSInputStream.read()/read(byte[],int,int) propagated the raw
IOException from the underlying Azure SDK stream when the file was
deleted after the stream was opened, instead of translating it to
NotFoundException like openRange() already does. GCSInputStream
handles this via GCSExceptionUtil.throwNotFoundIfNotPresent.

Generated-by: Claude Code
@github-actions github-actions Bot added the AZURE label Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Azure: Translate not-found errors in ADLSInputStream mid-stream reads

1 participant