docs: protected Throwable buildView(FacesContext context, Throwable throwable, Throwable rootCause) throws IOException {
          if (context.getViewRoot() == null) {
              ViewHandler viewHandler = context.getApplication().getViewHandler();
  
              String viewId = viewHandler.deriveViewId(context, ComponentUtils.calculateViewId(context));
              ViewDeclarationLanguage vdl = viewHandler.getViewDeclarationLanguage(context, viewId);
              UIViewRoot viewRoot = vdl.createView(context, viewId);
              context.setViewRoot(viewRoot);
  
              vdl.buildView(context, viewRoot);
  
              // Workaround for Mojarra
              // if UIViewRoot == null -> 'IllegalArgumentException' is throwed instead of 'ViewExpiredException'
              if (rootCause == null && throwable instanceof IllegalArgumentException) {
                  rootCause = new javax.faces.application.ViewExpiredException(viewId);
              }
          }
  
          return rootCause;
      }