adobe / adobe/aem-core-forms-components

Regression: core.forms.components.version > 1.1.66 causes Forms API/classpath failures

Open
#1,974 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
36
Forks
62
Avg merge
1d 6h
Merged PRs (30d)
8

Description

### Expected Behaviour
Upgrading AEM Forms Core Components should not break consumer build/tests.
The project should build successfully without adding local compatibility stubs/shims for missing Adobe Forms classes.

### Actual Behaviour
When `core.forms.components.version` is upgraded above `1.1.66`, build/test failures occur in `core`, including:
- compile-time API mismatch (missing override for `getOptionScreenReaderLabels()`),
- runtime/test classloading failure (`NoClassDefFoundError: com/adobe/fd/fp/api/exception/FormsPortalException`),
- binary compatibility error observed in tests (`IncompatibleClassChangeError` on USC `Query` type shape mismatch).

### Reproduce Scenario (including but not limited to)
Regression appears when moving from known good Forms components version to newer versions.

#### Steps to Reproduce
1. In `pom.xml`, set:
- `core.forms.components.version` to a version `> 1.1.66`
2. Run:
```zsh
mvn clean install

#### Platform and Version
IntelliJ IDEA 2026.1.3

#### AEM Version (mention the exact version in case of cloud SDK)
io.wcm.maven:io.wcm.maven.aem-dependencies:6.6.3.0000

#### AEM Forms Version
Last known working: core.forms.components.version=1.1.66
Failing versions: > 1.1.66

#### Sample Code that illustrates the problem
Affected consumer classes:
components/checkboxgroup/CheckBoxGroupImpl.java
components/radiobutton/RadioButtonImpl.java

Method required by newer API contract:
@Override
public String[] getOptionScreenReaderLabels() {
return .getOptionScreenReaderLabels();
}

#### Logs taken while reproducing problem
[ERROR] ...CheckBoxGroupImpl is not abstract and does not override abstract method getOptionScreenReaderLabels() in com.adobe.cq.forms.core.components.models.form.OptionsConstraint
[ERROR] ...RadioButtonImpl is not abstract and does not override abstract method getOptionScreenReaderLabels() in com.adobe.cq.forms.core.components.models.form.OptionsConstraint

NoClassDefFoundError: com/adobe/fd/fp/api/exception/FormsPortalException

java.lang.IncompatibleClassChangeError: class com.adobe.cq.forms.core.components.internal.models.v1.formsportal.DraftsAndSubmissionsImpl$QueryImpl can not implement com.adobe.forms.foundation.usc.model.Query, because it is not an interface

Contributor guide

Open the contributing guide

Research direction

Start with pom.xml and reproduce the failure using core.forms.components.version above 1.1.66 with mvn clean install. Then inspect components/checkboxgroup/CheckBoxGroupImpl.java and components/radiobutton/RadioButtonImpl.java alongside the reported Forms API and classloading errors. Done means the project builds and tests without compatibility stubs or shims across the affected versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.