[
https://issues.apache.org/jira/browse/MYFACES-4742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18057439#comment-18057439
]
Werner Punz commented on MYFACES-4742:
--------------------------------------
Never mind the mistake was on my project setup for the test project!
I will close the issue!
> ViewExpired Exception on simple ajax request in current master branch
> ---------------------------------------------------------------------
>
> Key: MYFACES-4742
> URL: https://issues.apache.org/jira/browse/MYFACES-4742
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 5.0.0
> Reporter: Werner Punz
> Priority: Blocker
> Attachments: image-2026-02-07-20-47-59-972.png
>
>
> I have a simple example which triggers a view expired exception despite the
> request sending correct viewstate data. The example works on all branches
> except the current main branch!
>
> {code:java}
> // code placeholder
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE html
> PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:h="jakarta.faces.html"
> xmlns:ui="jakarta.faces.facelets"
> xmlns:f="jakarta.faces.core">
> <ui:composition template="./resources/templates/template.xhtml">
> <ui:define name="content">
> <h:form id="form1">
> <h:commandScript name="callBeanAction"
> action="#{commandScriptBean.doAction()}"
> render="form1:result"
> execute="@this" />
> <h:outputText id="result" value="#{commandScriptBean.message}" />
> <br />
> <button type="button" onclick="callBeanAction()">
> Call Action via h:commandScript
> </button>
> </h:form>
> </ui:define>
> </ui:composition>
> </html>
> {code}
> {code:java}
> // code placeholder
> package extras.apache.org.jsintegration.protocol;
> import jakarta.enterprise.context.RequestScoped;
> import jakarta.inject.Named;
> import java.io.Serializable;
> @RequestScoped
> @Named
> public class CommandScriptBean implements Serializable {
> private String message = "No action called yet.";
> public void doAction() {
> System.out.println("doAction triggered via h:commandScript");
> message = "Action was called successfully!";
> }
> public String getMessage() {
> return message;
> }
> }
> {code}
> the error message is a classical viewExpired Exception:
> SCHWERWIEGEND: jakarta.faces.application.ViewExpiredException occurred while
> processing RESTORE_VIEW [Location=]
> jakarta.faces.application.ViewExpiredException: View "/commandscript.jsf"
> could not be restored.
> at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:183)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:195)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:137)
> at
> org.apache.myfaces.webapp.FacesServletImpl.service(FacesServletImpl.java:163)
> at jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:102)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
> at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:119)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)
> at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
> at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
> at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
> at
> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
> at
> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.base/java.lang.Thread.run(Thread.java:1474)
>
> And the request however is absolutely correct:
> !image-2026-02-07-20-47-59-972.png|width=572,height=229!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)