Search in sources :

Example 1 with ServerErrorHandler

use of ratpack.error.ServerErrorHandler in project ratpack by ratpack.

the class DefaultContext method error.

public void error(Throwable throwable) {
    ServerErrorHandler serverErrorHandler = get(ServerErrorHandler.TYPE);
    throwable = unpackThrowable(throwable);
    ThrowableHolder throwableHolder = getRequest().maybeGet(ThrowableHolder.TYPE).orElse(null);
    if (throwableHolder == null) {
        getRequest().add(ThrowableHolder.TYPE, new ThrowableHolder(throwable));
        try {
            if (throwable instanceof InvalidPathEncodingException) {
                serverErrorHandler.error(this, (InvalidPathEncodingException) throwable);
            } else {
                serverErrorHandler.error(this, throwable);
            }
        } catch (Throwable errorHandlerThrowable) {
            onErrorHandlerError(serverErrorHandler, throwable, errorHandlerThrowable);
        }
    } else {
        onErrorHandlerError(serverErrorHandler, throwableHolder.getThrowable(), throwable);
    }
}
Also used : ServerErrorHandler(ratpack.error.ServerErrorHandler) InvalidPathEncodingException(ratpack.path.InvalidPathEncodingException)

Example 2 with ServerErrorHandler

use of ratpack.error.ServerErrorHandler in project ratpack by ratpack.

the class DefaultRequestFixture method getEffectiveRegistry.

private Registry getEffectiveRegistry(final DefaultHandlingResult.ResultsHolder results) {
    ClientErrorHandler clientErrorHandler = (context, statusCode) -> {
        results.setClientError(statusCode);
        context.getResponse().status(statusCode);
        results.getLatch().countDown();
    };
    ServerErrorHandler serverErrorHandler = (context, throwable1) -> {
        results.setThrowable(throwable1);
        results.getLatch().countDown();
    };
    final Registry userRegistry = Registry.builder().add(ClientErrorHandler.class, clientErrorHandler).add(ServerErrorHandler.class, serverErrorHandler).build();
    return Exceptions.uncheck(() -> {
        ServerConfig serverConfig = serverConfigBuilder.build();
        DefaultExecController execController = new DefaultExecController(serverConfig.getThreads());
        return ServerRegistry.serverRegistry(new TestServer(), Impositions.none(), execController, serverConfig, r -> userRegistry.join(registryBuilder.build()));
    });
}
Also used : RatpackServer(ratpack.server.RatpackServer) HttpVersion(io.netty.handler.codec.http.HttpVersion) ClientErrorHandler(ratpack.error.ClientErrorHandler) RequestFixture(ratpack.test.handling.RequestFixture) RootPathBinding(ratpack.path.internal.RootPathBinding) HandlerTimeoutException(ratpack.test.handling.HandlerTimeoutException) Unpooled.unreleasableBuffer(io.netty.buffer.Unpooled.unreleasableBuffer) ServerRegistry(ratpack.server.internal.ServerRegistry) ByteBuf(io.netty.buffer.ByteBuf) MutableHeaders(ratpack.http.MutableHeaders) PathBindingStorage(ratpack.path.internal.PathBindingStorage) RequestBodyReader(ratpack.server.internal.RequestBodyReader) ServerConfig(ratpack.server.ServerConfig) ServerConfigBuilder(ratpack.server.ServerConfigBuilder) Registry(ratpack.registry.Registry) Map(java.util.Map) CharsetUtil(io.netty.util.CharsetUtil) DefaultPathBinding(ratpack.path.internal.DefaultPathBinding) DefaultRequest(ratpack.http.internal.DefaultRequest) Unpooled.buffer(io.netty.buffer.Unpooled.buffer) DefaultExecController(ratpack.exec.internal.DefaultExecController) Streams(ratpack.stream.Streams) RegistryBuilder(ratpack.registry.RegistryBuilder) ServerErrorHandler(ratpack.error.ServerErrorHandler) ImmutableMap(com.google.common.collect.ImmutableMap) HttpMethod(io.netty.handler.codec.http.HttpMethod) Promise(ratpack.exec.Promise) Block(ratpack.func.Block) Instant(java.time.Instant) HostAndPort(com.google.common.net.HostAndPort) InetSocketAddress(java.net.InetSocketAddress) Chain(ratpack.handling.Chain) RegistrySpec(ratpack.registry.RegistrySpec) Impositions(ratpack.impose.Impositions) DefaultHttpHeaders(io.netty.handler.codec.http.DefaultHttpHeaders) HandlingResult(ratpack.test.handling.HandlingResult) Action(ratpack.func.Action) Handler(ratpack.handling.Handler) Exceptions(ratpack.util.Exceptions) TransformablePublisher(ratpack.stream.TransformablePublisher) HttpHeaderNames(io.netty.handler.codec.http.HttpHeaderNames) Handlers(ratpack.handling.Handlers) NettyHeadersBackedMutableHeaders(ratpack.http.internal.NettyHeadersBackedMutableHeaders) ExecController(ratpack.exec.ExecController) ServerErrorHandler(ratpack.error.ServerErrorHandler) ServerConfig(ratpack.server.ServerConfig) ClientErrorHandler(ratpack.error.ClientErrorHandler) DefaultExecController(ratpack.exec.internal.DefaultExecController) ServerRegistry(ratpack.server.internal.ServerRegistry) Registry(ratpack.registry.Registry)

Aggregations

ServerErrorHandler (ratpack.error.ServerErrorHandler)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 HostAndPort (com.google.common.net.HostAndPort)1 ByteBuf (io.netty.buffer.ByteBuf)1 Unpooled.buffer (io.netty.buffer.Unpooled.buffer)1 Unpooled.unreleasableBuffer (io.netty.buffer.Unpooled.unreleasableBuffer)1 DefaultHttpHeaders (io.netty.handler.codec.http.DefaultHttpHeaders)1 HttpHeaderNames (io.netty.handler.codec.http.HttpHeaderNames)1 HttpMethod (io.netty.handler.codec.http.HttpMethod)1 HttpVersion (io.netty.handler.codec.http.HttpVersion)1 CharsetUtil (io.netty.util.CharsetUtil)1 InetSocketAddress (java.net.InetSocketAddress)1 Instant (java.time.Instant)1 Map (java.util.Map)1 ClientErrorHandler (ratpack.error.ClientErrorHandler)1 ExecController (ratpack.exec.ExecController)1 Promise (ratpack.exec.Promise)1 DefaultExecController (ratpack.exec.internal.DefaultExecController)1 Action (ratpack.func.Action)1 Block (ratpack.func.Block)1