dromara/Sa-Token · error · RuntimeException
The forward action url is the same as before.
Error message
The forward action url is the same as before.
What it means
Error "The forward action url is the same as before." thrown in dromara/Sa-Token.
Source
Thrown at sa-token-starter/sa-token-jfinal-plugin/src/main/java/cn/dev33/satoken/jfinal/SaTokenActionHandler.java:100
SaControllerContext.hold(controller);
if (devMode) {
if (actionReporter.isReportAfterInvocation(request)) {
new Invocation(action, controller).invoke();
actionReporter.report(target, controller, action);
} else {
actionReporter.report(target, controller, action);
new Invocation(action, controller).invoke();
}
}
else {
new Invocation(action, controller).invoke();
}
Render render = controller.getRender();
if (render instanceof ForwardActionRender) {
String actionUrl = ((ForwardActionRender)render).getActionUrl();
if (target.equals(actionUrl)) {
throw new RuntimeException("The forward action url is the same as before.");
} else {
handle(actionUrl, request, response, isHandled);
}
return ;
}
if (render == null) {
render = renderManager.getRenderFactory().getDefaultRender(action.getViewPath() + action.getMethodName());
}
render.setContext(request, response, action.getViewPath()).render();
}
catch (RenderException e) {
if (log.isErrorEnabled()) {
String qs = request.getQueryString();
log.error(qs == null ? target : target + "?" + qs, e);
}
}
catch (ActionException e) {View on GitHub (pinned to ac2c7f6e94)
Solutions
- 检查控制器中 render(new ForwardActionRender(actionUrl)) 的目标地址,确保其与当前请求的 actionUrl 不同,避免无限循环转发。
- 如果确实需要转发到相同路径,请先修改请求参数或状态,使再次处理时走不同分支。
When it happens
Trigger: Thrown at sa-token-starter/sa-token-jfinal-plugin/src/main/java/cn/dev33/satoken/jfinal/SaTokenActionHandler.java:100 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dromara/Sa-Token@ac2c7f6e94 (2026-08-14).
Data as JSON: /api/errors/8a93a22c21ec431e.
Report an issue: GitHub.