Skip to content

Conversation

@alextwoods
Copy link
Contributor

Fix flaky pauseAndResume_ObjectNotChanged_shouldResumeDownload integ test

Motivation and Context

This integ test can fail when trying to verify the number of bytes transferred with assertThat(resumedFileDownload.progress().snapshot().totalBytes()).hasValue(expectedBytesTransferred) after resume is called with errors like:

org.opentest4j.AssertionFailedError: 
Expecting actual:
  OptionalLong[44040192]
to contain:
  44040202L
but did not.
Expected :44040202
Actual   :44040192

In these cases the actual bytes transferred on the resumed file download is less than expected because additional bytes are flushed to the file AFTER pause is called and not counted in the bytesTransferred stat. However, the client handles this correctly and will write the correct data to the file (we verify this with assertThat(path.toFile()).hasSameBinaryContentAs(sourceFile);).

Modifications

  • Adds an extra wait until the file size stabalizes (ie, the file size remains unchanged for 500ms) to ensure all bytes are flushed.
  • Use this actual file size when computing how many bytes we expect to be transferred on resume.

Testing

re-run integ test many times without failure.

Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

@alextwoods alextwoods added the changelog-not-required Indicate changelog entry is not required for a specific PR label Nov 7, 2025
@alextwoods alextwoods requested a review from a team as a code owner November 7, 2025 22:08
@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 7, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog-not-required Indicate changelog entry is not required for a specific PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants