Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-868

New instance of the filter in always created

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • None
    • Web (Undertow)

      I have created Servlet 3.0 filter in WebApplicationInitializer.onStartup() for example the following way:

      public void onStartup(ServletContext servletContext) throws ServletException {
      String servletName = "someServlet";
      String[] mappings = new String[]

      {"*.html"}

      ;
      Servlet servlet = FooServlet();
      ServletRegistration.Dynamic s = servletContext.addServlet(servletName, servlet);
      s.setLoadOnStartup(1);
      s.addMapping(mappings);

      Filter filter = new FooFilter("argument");
      String[] servletNames = new String[]

      {servletName}

      ;
      FilterRegistration.Dynamic f = servletContext.addFilter("fooFilter", filter);
      f.addMappingForServletNames(null, false, servletNames);
      }

      My problem is that jboss-web implemntation 7.0.13+ in StartdardContext.filterStart() along with ApplicationFilterConfig.getFilter() always tries to create new instance of the Filter via default constructor.

      My FooFilter does not have default constructor and therefore my application cannot be deployed.

      Please, check current implementation in Tomcat 7.0.32, which does not contain this problem.

      Also I have found that ApplicationFilterConfig has two similar atributes named filter and filterInstance. I guess it is quite wrong implementation and it is related to my problem.

        1. filtertest-0.0.1-SNAPSHOT.war
          2.55 MB
          Martin Vanek

              rmaucher Remy Maucherat
              momega2 Martin Vanek (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: