If a flow is mapped using a URL extension, and if someone uses a bookmarked link from an earlier flow instance, Spring WebFlow loses the extension on new flow creation, resulting in 404-not found. Here are the details:
Spring WebFlow automatically puts a flow execution key in URL, for example accessing /myapp/myflow.xyz will take you to: /myapp/myflow.xyz?execution=e1s1
If someone bookmarks this link, and later tries to use it directly (in a new browser session), WebFlow is supposed to redirect back to /myapp/myflow.xyz to start a new flow. However, it is redirecting to /myapp/myflow - note the missing ".xyz" suffix. Obviously, this results in 404-not found.
I am using the normal setup - myflow.xyz is mapped to flowController using SimpleUrlHandlerMapping, and *.xyz is mapped to Spring MVC dispatcher servlet. The flow is defined in myflow.xml, and is registered with flowRegistry.
The versions used are Spring WebFlow 2.0.3 and Spring 2.5. This bug occurs in all application servers and browsers I tested. As users frequently bookmark the links, at least the initial entry into a flow, this is a serious bug, with no work-around.
Corresponding forum thread is at http://forum.springframework.org/showthread.php?p=209256 .