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

asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7cd051d785 Automatic Site Publish by Buildbot
7cd051d785 is described below

commit 7cd051d785df7e26fbc426d58122f64e221b7872
Author: buildbot <[email protected]>
AuthorDate: Fri Oct 23 08:05:03 2026 +0000

    Automatic Site Publish by Buildbot
---
 output/plugins/rest/index.html | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/output/plugins/rest/index.html b/output/plugins/rest/index.html
index cfb3f89dec..61ef803e9a 100644
--- a/output/plugins/rest/index.html
+++ b/output/plugins/rest/index.html
@@ -558,6 +558,14 @@ constructors and <code class="language-plaintext 
highlighter-rouge">@Constructor
 request body, make sure they are reachable from an authorized property; see
 <a 
href="../../core-developers/struts-parameter-annotation.html#creator-bound-properties">Creator-bound
 properties</a>.</p>
 
+<p>A custom handler that implements only <code class="language-plaintext 
highlighter-rouge">ContentTypeHandler</code> is deserialized into a fresh 
instance of the action or
+model, and only authorized properties are copied back. Since Struts 7.5.0 that 
copy skips a property whose value is
+null or equal to the constructor default of a fresh instance, so values bound 
by <code class="language-plaintext highlighter-rouge">params</code> or loaded 
in <code class="language-plaintext highlighter-rouge">prepare()</code>
+survive a body that omits them (<a 
href="https://issues.apache.org/jira/browse/WW-5790";>WW-5790</a>). Three 
consequences: a body value
+equal to the constructor default is not applied over a differing existing 
value, which includes a primitive at its
+zero value and an empty collection; nested beans are compared leaf by leaf, 
never through their own <code class="language-plaintext 
highlighter-rouge">equals</code>; and the
+constructor of the target runs twice per request on this path. Implement <code 
class="language-plaintext 
highlighter-rouge">AuthorizationAwareContentTypeHandler</code> to get exact 
semantics.</p>
+
 <h3 id="settings">Settings</h3>
 
 <p>The following settings can be customized. See the <a 
href="/core-developers/configuration-files">developer guide</a>.

Reply via email to