Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-28797

[GSS](7.4.z) mojarra swallows original exception and throws unrelated UnsupportedOperationException when exception happens in com.sun.faces.application.WebappLifecycleListener#requestDestroyed()

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 7.4.20.GA
    • JSF
    • None

      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.

              thofman Tomas Hofman
              rhn-support-mmiura Masafumi Miura
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: