You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/07/05 12:44:58 UTC
(grails-core) branch 8.0.x updated (9702f0056f -> 05d410074e)
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a change to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from 9702f0056f Merge pull request #15826 from apache/ci/publish-timeout-headroom
add 2c325ffc29 [skip ci] Release v7.2.0
add 83783b1356 [skip ci] Bump version to 7.2.1-SNAPSHOT
add 479b673f50 Merge pull request #15822 from apache/merge-back-7.2.0
add f9d3a53c84 [skip ci] Release v7.1.3
add a1fca2a1de [skip ci] Bump version to 7.1.4-SNAPSHOT
add 63522e26cc Merge pull request #15821 from apache/merge-back-7.1.3
add ef1202fc70 Fix inheritance of bindable:true on abstract classes annotated with `@DirtyCheck`
add b38bd689be Add multi-level test per feedback & update references to PR / issue
add ed9fdef602 Merge pull request #15796 from apache/id-binding-isuee
add 9be489620d [skip ci] Release v7.0.13
add e4d38ab34a [skip ci] Bump version to 7.0.14-SNAPSHOT
add 861cbf45d8 Merge pull request #15820 from apache/merge-back-7.0.13
add f6ff53cc4a Add prevent_self_review: false so releases can be approved again
add b778627ecf Merge branch '7.0.x' into 7.1.x
add b6cb5650fc Merge branch '7.1.x' into 7.2.x
new 05d410074e Merge branch '7.2.x' into 8.0.x
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.asf.yaml | 4 +
.../gorm/DirtyCheckBindingController.groovy | 12 ++-
...heckedRecord.groovy => BindableIdRecord.groovy} | 7 +-
.../groovy/gorm/DirtyCheckBindingSpec.groovy | 18 +++++
...cord.groovy => AbstractBindableIdRecord.groovy} | 17 +++--
...ngHelperDomainClassSpecialPropertiesSpec.groovy | 89 ++++++++++++++++++++++
.../databinding/DefaultASTDatabindingHelper.java | 27 ++++++-
7 files changed, 160 insertions(+), 14 deletions(-)
copy grails-test-examples/gorm/grails-app/domain/gorm/{DirtyCheckedRecord.groovy => BindableIdRecord.groovy} (76%)
copy grails-test-examples/gorm/src/main/groovy/gorm/{AbstractDirtyCheckedRecord.groovy => AbstractBindableIdRecord.groovy} (63%)
(grails-core) 01/01: Merge branch '7.2.x' into 8.0.x
Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 05d410074e87e4160a830a6bd3e67aedb2dd75db
Merge: 9702f0056f b6cb5650fc
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sun Jul 5 08:44:48 2026 -0400
Merge branch '7.2.x' into 8.0.x
# Conflicts:
# gradle.properties
# grails-core/src/test/groovy/grails/util/GrailsUtilTests.java
.asf.yaml | 4 +
.../gorm/DirtyCheckBindingController.groovy | 12 ++-
.../gorm/BindableIdRecord.groovy} | 15 ++--
.../groovy/gorm/DirtyCheckBindingSpec.groovy | 18 +++++
.../groovy/gorm/AbstractBindableIdRecord.groovy} | 21 +++--
...ngHelperDomainClassSpecialPropertiesSpec.groovy | 89 ++++++++++++++++++++++
.../databinding/DefaultASTDatabindingHelper.java | 27 ++++++-
7 files changed, 166 insertions(+), 20 deletions(-)
diff --cc grails-test-examples/gorm/src/integration-test/groovy/gorm/DirtyCheckBindingSpec.groovy
index b068c43f3a,f71db75585..a6b7665c50
--- a/grails-test-examples/gorm/src/integration-test/groovy/gorm/DirtyCheckBindingSpec.groovy
+++ b/grails-test-examples/gorm/src/integration-test/groovy/gorm/DirtyCheckBindingSpec.groovy
@@@ -61,19 -56,30 +61,37 @@@ class DirtyCheckBindingSpec extends Spe
@Issue('https://github.com/apache/grails-core/issues/15681')
void 'binding only a regular property over HTTP leaves id and version null'() {
when:
- def response = httpPost('/dirtyCheckBinding/bind', 'description=Closing+balance', FORM)
+ def response = httpPostForm(
+ '/dirtyCheckBinding/bind',
+ [
+ description: 'Closing balance'
+ ]
+ )
then:
- response.assertStatus(200)
- response.assertContains('description=Closing balance')
- response.assertContains('id=null')
- response.assertContains('version=null')
+ with(response) {
+ assertStatus(200)
+ assertContains('description=Closing balance')
+ assertContains('id=null')
+ assertContains('version=null')
+ }
}
+
+ @Issue('https://github.com/apache/grails-core/issues/15795')
+ void 'an explicit bindable:true id constraint declared on a @DirtyCheck base is inherited and binds over HTTP'() {
+ when: 'a form submission posts id, version and a regular property to a domain whose base opts id into binding'
+ def response = httpPost('/dirtyCheckBinding/bindInheritedBindableId', 'id=99&version=5&description=Opening+balance', FORM)
+
+ then: 'the request succeeds'
+ response.assertStatus(200)
+
+ and: 'the regular property is bound'
+ response.assertContains('description=Opening balance')
+
+ and: 'id is bound because the inherited constraint explicitly opts it in'
+ response.assertContains('id=99')
+
+ and: 'version remains unbound as no constraint opts it in'
+ response.assertContains('version=null')
+ }
}