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

  1. Check whether the response was already committed before calling sendError.
  2. 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.