On Sat, May 2, 2026 at 8:37 PM Rainer Jung <[email protected]> wrote:

> Am 02.05.26 um 09:29 schrieb Rainer Jung:
> > Hi Dimitris,
> >
> > some of the new tests fail for me consistently. For details please see
> > below.
>
> Should be fixed by bea9b2a46ac41a459d03c5e2a9af0a536ca8c287. I took the
> code from StandardHost and adjusted it. Other places use "instanceof"
> instead of comparing class names. I hope the fix is OK for you.
>
> Best regards,
>
> Rainer
>
> >
> > Am 08.04.26 um 14:20 schrieb [email protected]:
> >> This is an automated email from the ASF dual-hosted git repository.
> >>
> >> dsoumis pushed a commit to branch 11.0.x
> >> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> >>
> >> commit 48343a64f24258be7e273d49849ee866463be67c
> >> Author: Dimitris Soumis <[email protected]>
> >> AuthorDate: Wed Apr 8 14:52:53 2026 +0300
> >>
> >>      Add more tests and minor fixes for FilterValve,
> >> ProxyErrorReportValve and SemaphoreValve
> >> ---
> >>   .../apache/catalina/valves/TestFilterValve.java    |  99 ++++----
> >>   .../catalina/valves/TestProxyErrorReportValve.java | 121 +++++-----
> >>   .../apache/catalina/valves/TestSemaphoreValve.java | 254 +++++++++++
> >> +++++++---
> >>   3 files changed, 333 insertions(+), 141 deletions(-)
> >>
> >
> >> diff --git a/test/org/apache/catalina/valves/
> >> TestProxyErrorReportValve.java b/test/org/apache/catalina/valves/
> >> TestProxyErrorReportValve.java
> >> index 98a92fe84f..8829fa2d63 100644
> >> --- a/test/org/apache/catalina/valves/TestProxyErrorReportValve.java
> >> +++ b/test/org/apache/catalina/valves/TestProxyErrorReportValve.java
> > ...
> >
> >> @@ -54,28 +50,49 @@ public class TestProxyErrorReportValve extends
> >> TomcatBaseTest {
> >>                   HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
> >> "Server broke"));
> >>           ctx.addServletMappingDecoded("/", "error");
> >> -        // Register an error page that the valve will redirect to
> >> +        // Register an error page at the Host's error report valve
> level
> >> +        // so findErrorPage() returns a URL for the redirect
> >> +        Tomcat.addServlet(ctx, "errorPage", new ErrorPageServlet());
> >> +        ctx.addServletMappingDecoded("/error-page", "errorPage");
> >> +
> >> +        tomcat.start();
> >> +
> >> +        ProxyErrorReportValve valve = (ProxyErrorReportValve)
> >> host.getPipeline().getFirst();
> >
> > I get an exception here:
> >
> > class org.apache.catalina.valves.AccessLogValve cannot be cast to class
> > org.apache.catalina.valves.ProxyErrorReportValve
> > (org.apache.catalina.valves.AccessLogValve and
> > org.apache.catalina.valves.ProxyErrorReportValve are in unnamed module
> > of loader 'app')
> > java.lang.ClassCastException: class
> > org.apache.catalina.valves.AccessLogValve cannot be cast to class
> > org.apache.catalina.valves.ProxyErrorReportValve
> > (org.apache.catalina.valves.AccessLogValve and
> > org.apache.catalina.valves.ProxyErrorReportValve are in unnamed module
> > of loader 'app')
> >          at
> >
> org.apache.catalina.valves.TestProxyErrorReportValve.testRedirectMode(TestProxyErrorReportValve.java:60)
> >          at java.base/
> > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >          at java.base/
> >
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
> >          at java.base/
> >
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >
> >
> > ...
> >
> >> +    @Test
> >> +    public void testProxyMode() throws Exception {
> >> +        Tomcat tomcat = getTomcatInstance();
> >> +        StandardHost host = (StandardHost) tomcat.getHost();
> >> +        host.setErrorReportValveClass(PROXY_VALVE);
> >> +
> >> +        Context ctx = getProgrammaticRootContext();
> >> +
> >> +        Tomcat.addServlet(ctx, "error", new SendErrorServlet(
> >> +                HttpServletResponse.SC_NOT_FOUND, "Not found"));
> >> +        ctx.addServletMappingDecoded("/", "error");
> >> +
> >>           Tomcat.addServlet(ctx, "errorPage", new ErrorPageServlet());
> >>           ctx.addServletMappingDecoded("/error-page", "errorPage");
> >> -        ErrorPage errorPage = new ErrorPage();
> >> -
> >> errorPage.setErrorCode(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
> >> -        errorPage.setLocation("/error-page");
> >> -        ctx.addErrorPage(errorPage);
> >>           tomcat.start();
> >> +        ProxyErrorReportValve valve = (ProxyErrorReportValve)
> >> host.getPipeline().getFirst();
> >
> > and here
> >
> > class org.apache.catalina.valves.AccessLogValve cannot be cast to class
> > org.apache.catalina.valves.ProxyErrorReportValve
> > (org.apache.catalina.valves.AccessLogValve and
> > org.apache.catalina.valves.ProxyErrorReportValve are in unnamed module
> > of loader 'app')
> > java.lang.ClassCastException: class
> > org.apache.catalina.valves.AccessLogValve cannot be cast to class
> > org.apache.catalina.valves.ProxyErrorReportValve
> > (org.apache.catalina.valves.AccessLogValve and
> > org.apache.catalina.valves.ProxyErrorReportValve are in unnamed module
> > of loader 'app')
> >          at
> >
> org.apache.catalina.valves.TestProxyErrorReportValve.testProxyMode(TestProxyErrorReportValve.java:86)
> >          at java.base/
> > jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >          at java.base/
> >
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
> >          at java.base/
> >
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >
> > Maybe this is due to running the tests here with test.accesslog=true? I
> > turn the access log on during tests so that I can find out failure
> > reasons more quickly.
> >
> > Best regards,
> >
> > Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
Hi Rainer,

Thanks for the fix.
Apologies for the late reply, I took time off the previous week.

Kind regards,
Dimitris

Reply via email to