Thank you for the response, Chris!

Below is the structure of custom access log valve:

// Custom access log valve

public class CustomAccessLogValve extends AccessLogValve {

      @Override
      protected AccessLogElement createAccessLogElement(char pattern) {
          if (pattern == 'r') {
// custom request element
              return new CustomRequestElement();
          }
          return super.createAccessLogElement(pattern);
      }

 protected static class CustomRequestElement extends RequestElement {

  @Override
         public void addElement(CharArrayWriter buf, Date date, Request 
request, Response response, long time) {
             }
 }
}

Thanks,
Amit

________________________________
From: Rémy Maucherat <[email protected]>
Sent: Tuesday, June 23, 2026 5:22 PM
To: Tomcat Users List <[email protected]>
Subject: Re: Tomcat 10.1.56: Extending RequestElement no longer works!

On Tue, Jun 23, 2026 at 10:52 PM Christopher Schultz
<[email protected]> wrote:
>
> Amit,
>
> On 6/23/26 2:01 PM, Amit Pande via users wrote:
> > Hello,
> >
> > protected static class RequestElement implements AccessLogElement {
> >
> > /**
> > * Constructs a new RequestElement.
> > */
> > RequestElement() {
> >
> >
> > Javadoc fixes and improvements · 
> > apache/tomcat@53c8f1e<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Ftomcat%2Fcommit%2F53c8f1ef59cb2bd1f03b7348b59263bfe3738550%23diff-2a57b3aba46c5951ddee8deb44f6e415f08899734b938fd114ceb7ffc1a4df14&data=05%7C02%7Camit.pande%40cohesity.com%7Ce7199791665f43b5083a08ded1760ee6%7Cb3c5c12c459546ac9b80e6d7b886903f%7C0%7C0%7C639178502164110762%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=T6wHWLo11%2BoCoK0Wm%2FrhWEBwnFZOsxTb61aXMBaF78g%3D&reserved=0>
> >
> > In 10.1.56, above change has caused breakage in code extending from 
> > RequestElement .
> >
> >
> >           error: RequestElement() is not public in RequestElement; cannot 
> > be accessed from outside package
> >
> >
> > Is this change intentional? If yes, what is the recommended alternate?
>
> This is a protected class. How (exactly) are you using it in your code?

This is a bit random. Some of the constructors are public, others
protected, and now I added some package ones (not very fun, should be
either public or protected).

Rémy

> I'd like to see the code you have and the declaration of the enclosing
> class(es).
>
> -chris
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to