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: Done
    • Icon: Major Major
    • 7.4.23.CR1, 7.4.23.GA
    • 7.4.20.GA
    • JSF
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • Hide

      1. enable byteman with the rule

      2. Then, deploy any JSF application (like "greeter" application in JBoss EAP's QuickStarts) on JBoss EAP 7.4 and access it.

      Show
      1. enable byteman with the rule 2. Then, deploy any JSF application (like "greeter" application in JBoss EAP's QuickStarts) on JBoss EAP 7.4 and access it.

      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:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: