public function errorAction(array $errorData)
    {
        $this->pool->reset();

        // Get the main part.
        $main = $this->pool->render->renderFatalMain(
            $errorData[static::TRACE_TYPE],
            $errorData[static::TRACE_ERROR_STRING],
            $errorData[static::TRACE_ERROR_FILE],
            $errorData[static::TRACE_ERROR_LINE]
        );

        // Get the backtrace.
        $backtrace = $this->pool
            ->createClass('Brainworxx\\Krexx\\Analyse\\Routing\\Process\\ProcessBacktrace')
            ->process($errorData[static::TRACE_BACKTRACE]);

        if ($this->pool->emergencyHandler->checkEmergencyBreak() === true) {
            return $this;
        }

        // Detect the encoding on the start-chunk-string of the analysis
        // for a complete encoding picture.
        $this->pool->chunks->detectEncoding($main . $backtrace);

        // Get the header, footer and messages
        $footer = $this->outputFooter(array());
        $header = $this->pool->render->renderFatalHeader($this->outputCssAndJs());
        $messages = $this->pool->messages->outputMessages();

        // Add the caller as metadata to the chunks class. It will be saved as
        // additional info, in case we are logging to a file.
        $this->pool->chunks->addMetadata(
            array(
                static::TRACE_FILE => $errorData[static::TRACE_ERROR_FILE],
                static::TRACE_LINE => $errorData[static::TRACE_ERROR_LINE] + 1,
                static::TRACE_VARNAME => ' Fatal Error',
            )
        );

        $this->outputService->addChunkString($header)
            ->addChunkString($messages)
            ->addChunkString($main)
            ->addChunkString($backtrace)
            ->addChunkString($footer)
            ->finalize();

        return $this;
    }