snowdrop-zen / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
1 stars 0 forks source link

RESTEasy Reactive: `valueOf` parameter converters don't work #227

Closed snowdrop-bot closed 3 years ago

snowdrop-bot commented 3 years ago

Just tried this:

class ValueOf {
    String value;
    private ValueOf(String value) {
        this.value = value;
    }
    public ValueOf valueOf(String value) {
        return new ValueOf(value);
    }
}

@Path("")
public class Endpoint {

    @Path("{valueOf}")
    @GET
    public String convertions(ValueOf valueOf){
        return valueOf;
    }
}

And got this exception:

2020-12-09 16:25:14,323 ERROR [org.jbo.res.rea.com.cor.AbstractResteasyReactiveContext] (vert.x-eventloop-thread-12) Request failed: javax.enterprise.context.ContextNotActiveException
    at io.quarkus.arc.impl.ClientProxies.getDelegate(ClientProxies.java:40)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_headers_e2f74da907ba522e84abeecb299d68e340ff6250_ClientProxy.arc$delegate(ContextProducers_ProducerMethod_headers_e2f74da907ba522e84abeecb299d68e340ff6250_ClientProxy.zig:43)
    at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_headers_e2f74da907ba522e84abeecb299d68e340ff6250_ClientProxy.getRequestHeaders(ContextProducers_ProducerMethod_headers_e2f74da907ba522e84abeecb299d68e340ff6250_ClientProxy.zig:249)
    at io.quarkus.resteasy.reactive.server.runtime.NotFoundExceptionMapper.selectVariant(NotFoundExceptionMapper.java:252)
    at io.quarkus.resteasy.reactive.server.runtime.NotFoundExceptionMapper.respond(NotFoundExceptionMapper.java:111)
    at io.quarkus.resteasy.reactive.server.runtime.NotFoundExceptionMapper.toResponse(NotFoundExceptionMapper.java:92)
    at io.quarkus.resteasy.reactive.server.runtime.NotFoundExceptionMapper.toResponse(NotFoundExceptionMapper.java:47)
    at org.jboss.resteasy.reactive.server.core.ExceptionMapping.mapException(ExceptionMapping.java:43)
    at org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext.mapExceptionIfPresent(ResteasyReactiveRequestContext.java:299)
    at org.jboss.resteasy.reactive.server.handlers.ExceptionHandler.handle(ExceptionHandler.java:13)
    at org.jboss.resteasy.reactive.server.handlers.ExceptionHandler.handle(ExceptionHandler.java:9)
    at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:108)
    at org.jboss.resteasy.reactive.server.handlers.RestInitialHandler.beginProcessing(RestInitialHandler.java:47)
    at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$5.handle(ResteasyReactiveRecorder.java:121)
    at io.quarkus.resteasy.reactive.server.runtime.ResteasyReactiveRecorder$5.handle(ResteasyReactiveRecorder.java:118)
    at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1036)
    at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
    at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:132)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$4.handle(VertxHttpRecorder.java:326)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$4.handle(VertxHttpRecorder.java:304)
    at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1036)
    at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
    at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:132)
    at io.quarkus.vertx.http.runtime.devmode.VertxHttpHotReplacementSetup.handleHotReplacementRequest(VertxHttpHotReplacementSetup.java:47)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$5.handle(VertxHttpRecorder.java:340)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$5.handle(VertxHttpRecorder.java:336)
    at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1036)
    at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
    at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:132)
    at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:54)
    at io.vertx.ext.web.impl.RouterImpl.handle(RouterImpl.java:36)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$9.handle(VertxHttpRecorder.java:416)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$9.handle(VertxHttpRecorder.java:413)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:145)
    at io.quarkus.vertx.http.runtime.VertxHttpRecorder$1.handle(VertxHttpRecorder.java:127)
    at io.quarkus.vertx.http.runtime.devmode.VertxHttpHotReplacementSetup$3.handle(VertxHttpHotReplacementSetup.java:84)
    at io.quarkus.vertx.http.runtime.devmode.VertxHttpHotReplacementSetup$3.handle(VertxHttpHotReplacementSetup.java:75)
    at io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:327)
    at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:366)
    at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:834)

https://github.com/quarkusio/quarkus/issues/13780


$upstream:13780$