This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b614ddc  missing breaking changes
b614ddc is described below

commit b614ddca3fd8166ed2b2f031a7d6ecaad6c44e35
Author: Paul King <[email protected]>
AuthorDate: Sun Oct 26 10:33:00 2025 +1000

    missing breaking changes
---
 site/src/site/releasenotes/groovy-4.0.adoc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/site/src/site/releasenotes/groovy-4.0.adoc 
b/site/src/site/releasenotes/groovy-4.0.adoc
index ad4f13d..05f1e26 100644
--- a/site/src/site/releasenotes/groovy-4.0.adoc
+++ b/site/src/site/releasenotes/groovy-4.0.adoc
@@ -1260,6 +1260,22 @@ with libraries built by pre-Groovy 4 versions or vice 
versa.
 A workaround is to use `@CompileStatic` for impacted super calls
 which alleviates the problem.
 link:https://issues.apache.org/jira/browse/GROOVY-8693[GROOVY-8693].
+* Groovy 4 attempts to align `Boolean` property access more closely with 
JavaBean conventions.
+The JavaBeans specification indicates that for a primitive `boolean` property 
`foo`,
+the accessor method can be either `isFoo()` or `getFoo()`. The JavaBean 
specification
+doesn't indicate that the "is" variant is applicable to `Boolean` properties.
+In earlier Groovy versions, sometimes `isFoo()` was allowed for
+`Boolean` properties, and not allowed in other cases. Also, in some places 
Groovy
+generated both `isFoo()` and `getFoo()` accessors for such properties which 
caused
+problems for introspection-based frameworks and (de)serialization libraries, 
sometimes
+causing a property to be included twice.
+Groovy 4 sticks more closely to the JavaBean specification, so
+the recommendation is that users wanting to use `isFoo()`, should use 
primitive `boolean` properties.
+Users dealing with introspection-based frameworks and (de)serialization 
libraries
+can use `Boolean` properties (and a `getFoo()` accessors if needed) to be sure 
they won't have
+duplication issues. Metaprogramming can also be used to reintroduce the old 
behavior in numerous cases if needed.
+link:https://issues.apache.org/jira/browse/GROOVY-8392[GROOVY-8392],
+link:https://issues.apache.org/jira/browse/GROOVY-10133[GROOVY-10133].
 
 [[Groovy4.0-requirements]]
 == JDK requirements

Reply via email to