theonedev/onedev · error · org.apache.wicket.WicketRuntimeException
org.apache.wicket.WicketRuntimeException
Error message
org.apache.wicket.WicketRuntimeException
What it means
ServletWebResponse.sendError wraps IOException from HttpServletResponse.sendError into a WicketRuntimeException; the container failed while reporting the HTTP error, e.g. because the response was already committed or the connection dropped.
Source
Thrown at server-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java:167
}
@Override
public void sendError(int sc, String msg)
{
try
{
if (msg == null)
{
httpServletResponse.sendError(sc);
}
else
{
httpServletResponse.sendError(sc, msg);
}
}
catch (IOException e)
{
throw new WicketRuntimeException(e);
}
}
@Override
public String encodeURL(CharSequence url)
{
Args.notNull(url, "url");
UrlRenderer urlRenderer = getUrlRenderer();
Url originalUrl = Url.parse(url);
/*
WICKET-4645 - always pass absolute url to the web container for encoding
because when REDIRECT_TO_BUFFER is in use Wicket may render PageB when
PageA is actually the requested one and the web container cannot resolve
the base url properly
*/View on GitHub (pinned to d44925c47c)
Solutions
- Check whether the response was already committed before calling sendError.
- Log and treat as a transport-level failure; retry logic rarely helps.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at server-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java:167 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/a66bf7b1a9f5c580.
Report an issue: GitHub.