2.4.x#571
Conversation
Remove additional parameters are added for grails web flow
Ideally we need to take out urlAttrs.params = params from createLink operation as webFlow plugin already takes care of adding execution param.
|
Kind regards, Ben Newbery On 23 Feb 2015, at 17:02, vinod2800 notifications@github.com wrote:
|
|
The pull request needs to be against the 2.4.x branch not master |
|
Sorry it's my bad, is there easy way to move to 2.4.x branch. I have created new request for 2.4.x - please check - #579 |
|
Adrien, that work around did not work for us. This pull request has broken all of our sub flows and we really don't want to rely on manually adding the execution parameter in all of our webflow links. Is there anyway to revive the externalized config vinod2800? I think the difference might be sub flows. Are either of you using them? The execution param is necessary in sub flows. You can check out my sample app here: https://github.com/kastone/grails-webflow-sample. If you look at hitAlarmClock.gsp, you will see I tried with the workaround to no avail. Clicking on the links will send user to beginning of webflow b/c the execution param is not included and the state cannot be restored. |
Just a small change to make things clearer, it seems that in the documentation as it stands that the roles of id and elementId are reversed. See http://stackoverflow.com/questions/43754126/how-do-i-pass-an-id-to-a-link-when-using-the-method-call-syntax-in-a-taglib/43775473#43775473
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Update spring boot to v2.7.17
Use older version of google-github-actions/setup-gcloud
Pulled apache/groovy master to commit 40499016 (HEAD as of 2026-05-03 18:03 UTC) and the 6.0.0-SNAPSHOT publication at build #571 (5.0.6-20260503.181740-571 on the snapshot timeline). Two more workarounds become removable: 1. grails-data-hibernate5/.../HibernateConnectionSourceSettings.groovy The explicit clone() override on the inner @AutoClone HibernateSettings class was the workaround for the Java stub generator regression that emitted 'clone() throws CloneNotSupportedException' on a class extending LinkedHashMap (whose JDK clone() does not declare the exception). Tracked as GROOVY-11980 (https://issues.apache.org/jira/browse/GROOVY-11980), committed to apache/groovy master 2026-05-02 21:29 UTC as ced726ce ('GROOVY-11980: @AutoClone clone() override adds CloneNotSupportedException not declared by superclass'). Build #571 contains the fix. Removed the explicit clone() body and the 16-line workaround comment. @AutoClone now generates the override with the correct (no-throws) signature, javac accepts it as a valid override of LinkedHashMap.clone(), and the deep- clone semantics for tenant connection-source settings are preserved by @AutoClone(style = CLONE) which is the default style. 2. grails-geb/.../testFixtures/grails/plugin/geb/ContainerGebConfiguration.groovy IContainerGebConfiguration converted from trait back to interface with default methods. The interface->trait workaround was for an indy=false IncompatibleClassChangeError ('Method '...\()' must be InterfaceMethodref constant') that fired when downstream classes compiled with -PgrailsIndy=false consumed the interface. Tracked as GROOVY-11982 (https://issues.apache.org/jira/browse/GROOVY-11982), committed to apache/groovy master 2026-05-02 23:16 UTC as 88ca738c ('GROOVY-11982: Default methods in interface throw IncompatibleClassChangeError under indy=false'). Build #571 contains the fix. Standalone reproducer in https://github.com/jamesfredley/groovy5-compiledynamic-trait-bug/blob/main/quick-checks/src/main/groovy/InterfaceDefaultsCheck.groovy was the basis for both the original workaround and this restoration; it now passes against build #571. Compilation re-verified locally on Groovy 6.0.0-SNAPSHOT build #571: ./gradlew :grails-data-hibernate5-core:compileGroovy --refresh-dependencies ./gradlew :grails-geb:compileTestFixturesGroovy --refresh-dependencies Both BUILD SUCCESSFUL. Runtime validation of the indy=false ContainerGebSpec class init path is deferred to the canary CI matrix - the affected specs (InheritedConfigSpec, ChildPreferenceInheritedConfigSpec) extend ContainerGebSpec implements IContainerGebConfiguration and exercise the exact \() InterfaceMethodref dispatch the upstream fix addresses. (Pre-existing :grails-fields:compileGroovy failure on this canary - unrelated to either of these workarounds; reproduces on the unmodified merged tree.) Net effect: two more rows leave the 'Real Groovy 6 regressions, no upstream PR yet' table in the PR description. Combined with the three inherited-from-#15557 workarounds dropped on the parent branch (GROOVY-11983 unlocking PersistentEntityCodec + DefaultHalViewHelper), five workarounds dropped against this round of upstream fixes. Assisted-by: claude-code:claude-opus-4.6
Resolution of GRAILS-11583,
Prob - While using grails webflow, it's adding additional "execution=e1s1" query string to URL,
Current Solution - provides configurable parameter to users "grails.views.enable.flowExecutionKey.param" to append query string to url.
Recommended Solution - remove "urlAttrs.params = params" mapping ( https://github.com/grails/grails-core/blob/v2.4.4/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy#L363) line as it's duplicate place.
grails-web-flow-plugin 2.1.0 - has code to handle execution=e1s1, parameter if you need to bookmark or share the pages.
Thank You,
Vinod