You are viewing a plain text version of this content. The canonical link for it is here.
Posted to announce@apache.org by Lukasz Lenart <lu...@apache.org> on 2026/06/30 05:55:59 UTC

[ANN] Apache Struts 7.2.1

The Apache Struts group is pleased to announce that Apache Struts
version 7.2.1 is available as a "General Availability" release. The GA
designation is our highest quality grade.

The Apache Struts is an elegant, extensible framework for creating
enterprise-ready Java web applications. The framework has been
designed to streamline the full development cycle, from building, to
deploying, to maintaining applications over time.

Please read the Migration Guide to find more details about how to
adopt a new version.
https://cwiki.apache.org/confluence/display/WW/Struts+6.x.x+to+7.x.x+migration

Please read the Version Notes to find more details about performed bug
fixes and improvements.
https://cwiki.apache.org/confluence/display/WW/Version+Notes+7.2.1

All developers are strongly advised to perform this upgrade.

The 7.x series of the Apache Struts framework has a minimum
requirement of the following specification versions: Java 17 and
JakartaEE.

Should any issues arise with your use of any version of the Struts
framework, please post your comments to the user list, and, if
appropriate, file a tracking ticket.
https://issues.apache.org/jira/projects/WW/

You can download this version from our download page.
https://struts.apache.org/download.cgi#struts-ga

Regards
Lukasz

Re: [ANN] Apache Struts 7.2.1

Posted by "info.flyingfischer.ch via dev" <de...@struts.apache.org>.
Thanks Łukasz

for all the great and very much appreciated effort you put in the project!

7.2.1 runs very fine.

Best regards
Markus


Am 01.07.26 um 07:05 schrieb Lukasz Lenart:
> Fix ready - let me know if this is clearer now :)
> https://github.com/apache/struts-site/pull/308
>
> śr., 1 lip 2026 o 06:56 Lukasz Lenart<lu...@apache.org> napisał(a):
>> wt., 30 cze 2026 o 20:26 info.flyingfischer.ch via dev
>> <de...@struts.apache.org> napisał(a):
>>> Thanks, that is a good documentation, except that
>>>
>>>
>>> @StrutsParameter(depth = 1)  was not sufficant
>>>
>>> for the case
>>>
>>>       @StrutsParameter(depth = 1)
>>>       public List<User> getUsers() {
>>>           return users;
>>>       }
>>>
>>> in my example, I needed
>>>
>>> @StrutsParameter(depth = 2)
>>> public List<MyObject> getContents() {
>>>       return contents;
>>>       }
>>>
>>> despite that MyObject contains only flat primitives like
>>>
>>> private String title;
>>>
>>> and the corresponding getter/setters (also annotated).
>> Thanks a lot! You are right, you need 2 because we must access
>> collection and then property of the collection's element as well - I
>> will fix the docs
>>
>>
>> Cheers
>> Łukasz
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:dev-unsubscribe@struts.apache.org
> For additional commands, e-mail:dev-help@struts.apache.org
>

Re: [ANN] Apache Struts 7.2.1

Posted by Lukasz Lenart <lu...@apache.org>.
Fix ready - let me know if this is clearer now :)
https://github.com/apache/struts-site/pull/308

śr., 1 lip 2026 o 06:56 Lukasz Lenart <lu...@apache.org> napisał(a):
>
> wt., 30 cze 2026 o 20:26 info.flyingfischer.ch via dev
> <de...@struts.apache.org> napisał(a):
> >
> > Thanks, that is a good documentation, except that
> >
> >
> > @StrutsParameter(depth = 1)  was not sufficant
> >
> > for the case
> >
> >      @StrutsParameter(depth = 1)
> >      public List<User> getUsers() {
> >          return users;
> >      }
> >
> > in my example, I needed
> >
> > @StrutsParameter(depth = 2)
> > public List<MyObject> getContents() {
> >      return contents;
> >      }
> >
> > despite that MyObject contains only flat primitives like
> >
> > private String title;
> >
> > and the corresponding getter/setters (also annotated).
>
> Thanks a lot! You are right, you need 2 because we must access
> collection and then property of the collection's element as well - I
> will fix the docs
>
>
> Cheers
> Łukasz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: [ANN] Apache Struts 7.2.1

Posted by Lukasz Lenart <lu...@apache.org>.
wt., 30 cze 2026 o 20:26 info.flyingfischer.ch via dev
<de...@struts.apache.org> napisał(a):
>
> Thanks, that is a good documentation, except that
>
>
> @StrutsParameter(depth = 1)  was not sufficant
>
> for the case
>
>      @StrutsParameter(depth = 1)
>      public List<User> getUsers() {
>          return users;
>      }
>
> in my example, I needed
>
> @StrutsParameter(depth = 2)
> public List<MyObject> getContents() {
>      return contents;
>      }
>
> despite that MyObject contains only flat primitives like
>
> private String title;
>
> and the corresponding getter/setters (also annotated).

Thanks a lot! You are right, you need 2 because we must access
collection and then property of the collection's element as well - I
will fix the docs


Cheers
Łukasz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: [ANN] Apache Struts 7.2.1

Posted by "info.flyingfischer.ch via dev" <de...@struts.apache.org>.
Thanks, that is a good documentation, except that


@StrutsParameter(depth = 1)  was not sufficant

for the case

     @StrutsParameter(depth = 1)
     public List<User> getUsers() {
         return users;
     }

in my example, I needed

@StrutsParameter(depth = 2)
public List<MyObject> getContents() {
     return contents;
     }

despite that MyObject contains only flat primitives like

private String title;

and the corresponding getter/setters (also annotated).

Best regards
Markus


Am 30.06.26 um 18:52 schrieb Łukasz Lenart:
> wt., 30 cze 2026 o 18:13info@flyingfischer.ch <in...@flyingfischer.ch>
> napisał(a):
>> If you have an Action extends ActionSupport that returns Json (using Gson here), it is not sufficient to annotate the setter
>>
>> @StrutsParameter(depth = 2) public void setContents(final List<MyObject> contents) { this.contents = contents; }
>>
>>
>> 2026-06-30 17:47:40 WARN org.apache.struts2.json.JSONInterceptor - JSON body parameter [contents[0].title] rejected by @StrutsParameter authorization on [org
>> .your.NameOfTheAction]
>>
>> You need also to annotate the getter
>>
>> @StrutsParameter(depth = 2) public List<MyObject> getContents() { return contents; }
>>
>> Because the new security mechanism first seems to use getContents to check, if there is permission to setContents. Also note that depth = 1 is not sufficent, despite that MyObject is a flat POJO. Not sure why that is, probably because it is a List<MyObject>.
>>
>> Maybe the documentation should be updated to make this clear. It does not seem obvious at least to me, which admittedly doesn't mean much. ;-)
> Is it your case?
> https://struts.apache.org/core-developers/struts-parameter-annotation#populating-properties-of-objects-within-a-collection
>
>
> Cheers
> Łukasz
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:dev-unsubscribe@struts.apache.org
> For additional commands, e-mail:dev-help@struts.apache.org
>

Re: [ANN] Apache Struts 7.2.1

Posted by Łukasz Lenart <lu...@gmail.com>.
wt., 30 cze 2026 o 18:13 info@flyingfischer.ch <in...@flyingfischer.ch>
napisał(a):
> If you have an Action extends ActionSupport that returns Json (using Gson here), it is not sufficient to annotate the setter
>
> @StrutsParameter(depth = 2) public void setContents(final List<MyObject> contents) { this.contents = contents; }
>
>
> 2026-06-30 17:47:40 WARN org.apache.struts2.json.JSONInterceptor - JSON body parameter [contents[0].title] rejected by @StrutsParameter authorization on [org
> .your.NameOfTheAction]
>
> You need also to annotate the getter
>
> @StrutsParameter(depth = 2) public List<MyObject> getContents() { return contents; }
>
> Because the new security mechanism first seems to use getContents to check, if there is permission to setContents. Also note that depth = 1 is not sufficent, despite that MyObject is a flat POJO. Not sure why that is, probably because it is a List<MyObject>.
>
> Maybe the documentation should be updated to make this clear. It does not seem obvious at least to me, which admittedly doesn't mean much. ;-)

Is it your case?
https://struts.apache.org/core-developers/struts-parameter-annotation#populating-properties-of-objects-within-a-collection


Cheers
Łukasz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: [ANN] Apache Struts 7.2.1

Posted by "info.flyingfischer.ch via dev" <de...@struts.apache.org>.
Thanks, the download works now.

Just as a small observation. I had quite a hard time to update the logic 
to the breaking change in https://issues.apache.org/jira/browse/WW-5626. 
Maybe it is just me, maybe it helps someone else:


If you have an Action extends ActionSupport that returns Json (using 
Gson here), it is not sufficient to annotate the setter

@StrutsParameter(depth = 2) publicvoidsetContents(finalList<MyObject> 
contents) { this.contents= contents; }


2026-06-30 17:47:40 WARN org.apache.struts2.json.JSONInterceptor - JSON 
body parameter [contents[0].title] rejected by @StrutsParameter 
authorization on [org
.your.NameOfTheAction]

You need also to annotate the getter

@StrutsParameter(depth = 2) publicList<MyObject> getContents() { 
returncontents; }

Because the new security mechanism first seems to use getContents to 
check, if there is permission to setContents. Also note that depth = 1 
is not sufficent, despite that MyObject is a flat POJO. Not sure why 
that is, probably because it is a List<MyObject>.

Maybe the documentation should be updated to make this clear. It does 
not seem obvious at least to me, which admittedly doesn't mean much. ;-)

Best regards
Markus


Am 30.06.26 um 10:55 schrieb Łukasz Lenart:
> wt., 30 cze 2026 o 10:52 info.flyingfischer.ch via dev
> <de...@struts.apache.org> napisał(a):
>> Hi Łukasz
>>
>> the download link under
>>
>> https://struts.apache.org/download.cgi#struts721
>>
>> is
>>
>> https://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip
>>
>> this gives a 404, independent of any browser mode. You may also check with
>>
>> wgethttps://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip
>>
>> … 404 Not Found
> Ah right! Forgot to push the packages into CDN, already done and it
> should be available soon, sorry for that :)
>
>
> Cheers
> Łukasz

Re: [ANN] Apache Struts 7.2.1

Posted by Łukasz Lenart <lu...@gmail.com>.
wt., 30 cze 2026 o 10:52 info.flyingfischer.ch via dev
<de...@struts.apache.org> napisał(a):
>
> Hi Łukasz
>
> the download link under
>
> https://struts.apache.org/download.cgi#struts721
>
> is
>
> https://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip
>
> this gives a 404, independent of any browser mode. You may also check with
>
> wget https://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip
>
> … 404 Not Found

Ah right! Forgot to push the packages into CDN, already done and it
should be available soon, sorry for that :)


Cheers
Łukasz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: [ANN] Apache Struts 7.2.1

Posted by "info.flyingfischer.ch via dev" <de...@struts.apache.org>.
Hi Łukasz

the download link under

https://struts.apache.org/download.cgi#struts721

is

https://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip

this gives a 404, independent of any browser mode. You may also check with

wget https://dlcdn.apache.org/struts/7.2.1/struts-7.2.1-all.zip

… 404 Not Found
2026-06-30 10:51:23 FEHLER 404: Not Found.


Best regards
Markus


Am 30.06.26 um 10:27 schrieb Łukasz Lenart:
> wt., 30 cze 2026 o 10:18 info.flyingfischer.ch via dev
> <de...@struts.apache.org> napisał(a):
>> The download links are unfortunately all dead:
>>
>> https://struts.apache.org/download.cgi#struts721
> It works for me, could you try in announymous mode?
>
> Cheers
> Łukasz
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:dev-unsubscribe@struts.apache.org
> For additional commands, e-mail:dev-help@struts.apache.org
>

Re: [ANN] Apache Struts 7.2.1

Posted by Łukasz Lenart <lu...@gmail.com>.
wt., 30 cze 2026 o 10:18 info.flyingfischer.ch via dev
<de...@struts.apache.org> napisał(a):
>
> The download links are unfortunately all dead:
>
> https://struts.apache.org/download.cgi#struts721

It works for me, could you try in announymous mode?

Cheers
Łukasz

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Fwd: [ANN] Apache Struts 7.2.1

Posted by "info.flyingfischer.ch via dev" <de...@struts.apache.org>.
The download links are unfortunately all dead:

https://struts.apache.org/download.cgi#struts721

Best regards
Markus



-------- Weitergeleitete Nachricht --------
Betreff: 	[ANN] Apache Struts 7.2.1
Datum: 	Tue, 30 Jun 2026 07:55:59 +0200
Von: 	Lukasz Lenart <lu...@apache.org>
Antwort an: 	users@struts.apache.org
An: 	Struts Users Mailing List <us...@struts.apache.org>
Kopie (CC): 	announce@apache.org, announcements@struts.apache.org



The Apache Struts group is pleased to announce that Apache Struts
version 7.2.1 is available as a "General Availability" release. The GA
designation is our highest quality grade.

The Apache Struts is an elegant, extensible framework for creating
enterprise-ready Java web applications. The framework has been
designed to streamline the full development cycle, from building, to
deploying, to maintaining applications over time.

Please read the Migration Guide to find more details about how to
adopt a new version.
https://cwiki.apache.org/confluence/display/WW/Struts+6.x.x+to+7.x.x+migration

Please read the Version Notes to find more details about performed bug
fixes and improvements.
https://cwiki.apache.org/confluence/display/WW/Version+Notes+7.2.1

All developers are strongly advised to perform this upgrade.

The 7.x series of the Apache Struts framework has a minimum
requirement of the following specification versions: Java 17 and
JakartaEE.

Should any issues arise with your use of any version of the Struts
framework, please post your comments to the user list, and, if
appropriate, file a tracking ticket.
https://issues.apache.org/jira/projects/WW/

You can download this version from our download page.
https://struts.apache.org/download.cgi#struts-ga

Regards
Lukasz