Fix misuse of volatile to avoid a data race
[LibreOffice.git] / jvmfwk / README.md
blob3f99d9dba89a079fdc6251cdbd6065bfef5271b4
1 # JVM Framework Wrappers
3 Wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with more ease.
5 Used to use an over-engineered "plugin" mechanism although there was only one
6 "plugin", called "sunmajor", that handles all possible JREs.
8 IMPORTANT:  The `<updated>` element in `vmfwk/distributions/OpenOfficeorg/javavendors_*.xml` files
9 should only be updated for incompatible changes, not for compatible ones.  As stated in the commit
10 message of <https://gerrit.libreoffice.org/#/c/69730/> in LibreOffice gerrit:
12 javavendors\_\*.xml &lt;updated\> should not have been updated...
14 Changing `<updated>` causes `jfw_startVM` and `jfw_getSelectedJRE` (both
15 `jvmfwk/source/framework.cxx`) to fail with `JFW_E_INVALID_SETTINGS`, which in turn causes functionality
16 that requires a JVM to issue a GUI error dialog stating that the user must select a new JRE in the
17 Options dialog.  While that behavior makes sense if a JRE was selected that would no longer be
18 supported by the modified `javavendors_*.xml`, it is just annoying if an already selected JRE is still
19 supported.  And a compatible change to `javavendors_*.xml` implies that an already selected JRE will
20 still be supported."