dedsecrattle / pe

0 stars 0 forks source link

JavaFx Version Mismatch #2

Open dedsecrattle opened 2 months ago

dedsecrattle commented 2 months ago

image.png

There is a JavaFx version mismatch that causes the warning , and it can potentially lead to failure in rendering some Ui parts.

nus-pe-script commented 2 months ago

Team's Response

Our app is not using exclusive features from JavaFX 21. Thorough testing was done on most popular operating systems with JavaFX 17 runtime and our existing UI elements are all rendered as expected.

Items for the Tester to Verify

:question: Issue response

Team chose [response.Rejected]

Reason for disagreement: 1. API Compatibility: Different versions of the JavaFX API may introduce new features, modify existing ones, or change the behavior of certain components. When an FXML document is created with a newer API version than the runtime version, there's a possibility that the FXML file may use API elements or features that are not supported or implemented in the same way by the older runtime version. This can lead to unexpected behavior, rendering issues, or even crashes in the application.

  1. Binary Compatibility: Even if the API changes are not directly used in the FXML file, there could be binary incompatibilities between the JavaFX API and runtime versions. These incompatibilities can manifest in subtle ways, such as incorrect layout rendering, missing or misplaced UI controls, or even memory leaks or performance issues.

  2. Dependency Conflicts: JavaFX applications often rely on third-party libraries or frameworks that themselves depend on specific versions of the JavaFX API. If the runtime version differs from the API version used by these dependencies, it can lead to version conflicts, resulting in runtime errors or unexpected behavior.

  3. Future Compatibility: While the current mismatch may not cause immediate issues, it could potentially lead to compatibility problems in the future. As the application evolves and new features or updates are introduced, the version mismatch may become more problematic, making it harder to maintain and upgrade the application over time.

  4. Maintainability and Debugging: Having a version mismatch between the API and runtime can make it more difficult to maintain and debug the application. Developers may encounter issues that are specific to the version mismatch, making it harder to diagnose and resolve problems effectively.

So, I personally believe even though application works fine , it can cause issues if not fixed for the future iteration and justifying it by saying it works fine now.

and given that the version difference is huge API version (21) and Runtime is (17)

Consider the following scenario -

JavaFX 21 introduced new UI controls, including AccordionPane, MarkdownView, and MarkdownEditor (From Java official Documentation) Since the API Level is 21 your application can have this changes but as this requirement i.e JavaFx runtime 21 is not enforced within the application and can cause crashing or Ui issues in your Application