-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
7.4.20.GA
-
None
-
False
-
None
-
False
-
-
-
-
-
-
-
When any exception happens inside com.sun.faces.application.WebappLifecycleListener#requestDestroyed() in JSF application, JBoss EAP's JSF implementation (mojarra) swallows an original exception and throws the following unrelated UnsupportedOperationException instead:
ERROR [io.undertow.servlet.request] (default task-1) UT015005: Error invoking method requestDestroyed on listener class com.sun.faces.config.ConfigureListener: java.lang.UnsupportedOperationException at javax.faces.context.FacesContext.getExceptionHandler(FacesContext.java:280) at javax.faces.event.ExceptionQueuedEventContext.getListenersForEventClass(ExceptionQueuedEventContext.java:248) at com.sun.faces.application.applicationimpl.Events.invokeComponentListenersFor(Events.java:181) at com.sun.faces.application.applicationimpl.Events.publishEvent(Events.java:106) at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:127) at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:119) at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:776) at com.sun.faces.application.WebappLifecycleListener.requestDestroyed(WebappLifecycleListener.java:149) at com.sun.faces.config.ConfigureListener.requestDestroyed(ConfigureListener.java:384) at io.undertow.servlet.core.ApplicationListeners.requestDestroyed(ApplicationListeners.java:289) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:324) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1348) at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1280) at java.lang.Thread.run(Thread.java:750)
This is not helpful and really difficult to identify what caused the issue.
Note: Since an exception just occurred in mojarra's WebappLifecycleListener#requestDestroyed(), the application processing appears to have been completed (and the response also appears to have been returned successfully). However, as something went wrong in mojarra's WebappLifecycleListener#requestDestroyed() processing, it's better to log the original exception.
- links to