Skip to content

fix: dispatch abstract widget methods through platform overrides - #2451

Open
dlowzzxx wants to merge 1 commit into
appium:masterfrom
dlowzzxx:fix/abstract-widget-methods-2372
Open

dlowzzxx wants to merge 1 commit into
appium:masterfrom
dlowzzxx:fix/abstract-widget-methods-2372

Conversation

@dlowzzxx

@dlowzzxx dlowzzxx commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Change list

Fixes #2372. An @OverrideWidget field declared as an abstract Widget subclass now dispatches its abstract methods to the selected Android, iOS, or HTML widget instead of throwing AbstractMethodError. The enhanced proxy intercepts those methods; when no listener handles one, it retains the original error behavior.

Types of changes

  • No changes in production code.
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Details and validation

  • A regression test failed on unmodified master with the reported AbstractMethodError; the patched test passes for Android, iOS, desktop browser, and Android webview, with both single-widget and widget-list fields. A separate test confirms an unhandled abstract method still throws.
  • On Windows, gradlew test assemble checkstyleMain checkstyleTest --continue ran 96 tests: 95 passed. StorageTest could not connect to the absent local Appium server at 127.0.0.1:4723; the clean base fails there too. Assembly and main-code Checkstyle passed. Test-code Checkstyle found the same five Javadoc errors in untouched files on the clean base and patch. git diff --check passed.
  • Hosted CI run #36152187337: stable JDK 17/21/25 builds and all four Android/iOS end-to-end jobs passed, including both macOS iOS simulator jobs. Three Selenium snapshot JDK jobs failed compiling untouched AppiumDriver/AppiumCommandExecutor code; the same snapshot errors appeared on merged PR build: include LICENSE and NOTICE in published JARs #2450. The full check matrix is therefore not green. No physical device validation was performed.

This change was AI-assisted with Codex. The validation and limits are described above; no maintainer review has occurred. If eligible after merge, I would welcome consideration under Appium's discretionary contributor compensation scheme, with any payout details handled privately through Open Collective.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AbstractMethodError for abstract Widget class - since migration to byte-buddy

1 participant