Stack Exchange
o.s.b.w.servlet.support.ErrorPageFilter : Forwarding to error page from request [0] Primefaces
I'm trying to upgrade Primefaces 3.5 to 8.
After changing Primefaces I receive this Error.
ERROR 24924 --- [nio-8080-exec-3] o.s.b.w.servlet.support.ErrorPageFilter  : Forwarding to error page from request [/t/u/k/kTable.jsf] due to exception [0]

javax.servlet.ServletException: 0
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:616) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:111) ~[primefaces-7.0.jar:7.0]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-websocket.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at de.otto.dacapoi.webapp.DacapoiFilter.doFilter(DFilter.java:105) ~[classes/:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:128) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:103) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:121) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[catalina.jar:9.0.41]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[catalina.jar:9.0.41]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[catalina.jar:9.0.41]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) ~[catalina.jar:9.0.41]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[catalina.jar:9.0.41]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[catalina.jar:9.0.41]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-coyote.jar:9.0.41]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-coyote.jar:9.0.41]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) ~[tomcat-coyote.jar:9.0.41]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) ~[tomcat-coyote.jar:9.0.41]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:9.0.41]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:9.0.41]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: java.lang.IllegalArgumentException: 0
    at javax.faces.component.UIComponentBase.validateId(UIComponentBase.java:544) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponentBase.setId(UIComponentBase.java:370) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at org.primefaces.model.menu.BaseMenuModel.generateUniqueIds(BaseMenuModel.java:70) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.model.menu.BaseMenuModel.generateUniqueIds(BaseMenuModel.java:58) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.model.menu.DefaultMenuModel.generateUniqueIds(DefaultMenuModel.java:38) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.menu.BaseMenuRenderer.encodeEnd(BaseMenuRenderer.java:114) ~[primefaces-7.0.jar:7.0]
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:877) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:87) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:69) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.scrollpanel.ScrollPanelRenderer.encodeMarkup(ScrollPanelRenderer.java:62) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.scrollpanel.ScrollPanelRenderer.encodeEnd(ScrollPanelRenderer.java:41) ~[primefaces-7.0.jar:7.0]
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:877) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:87) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:69) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:219) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:133) ~[primefaces-7.0.jar:7.0]
    at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:67) ~[primefaces-7.0.jar:7.0]
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:877) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1785) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:847) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:847) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:847) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:847) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1778) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1781) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1781) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:452) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:604) ~[javax.faces-2.1.29-11.jar:2.1.29-11]
    ... 47 common frames omitted

This code will be run without any problem on Primefaces 3.5 but not on Primefaces 7.0 .
I don't know what is wrong here.
I'm using:
JSF 2.2 ,
Primefaces 7.0 ,
Primefaces-extensions 7.0 ,
Tomcat 9.0.41 ,
Spring-boot 2.2.2.RELEASE .

https://primefaces.github.io/primefaces/10_0_0/#/../migrationguide/4_0 "MenuModel is rewritten and not backward compatible with the old version."

That's true. Thank you. I changed UIMenuItem  to DefaultMenuItem and everything goes fine now.
