vert-x3 / vertx-amqp-client

An AMQP client for Vert.x
Apache License 2.0
17 stars 18 forks source link

Unhandled Exception in Vertx 4.0.0 #51

Open UglyHobbitFeet opened 3 years ago

UglyHobbitFeet commented 3 years ago

After migrating from Vertx 3.9.4 -> 4.0.0 I now get a mysterious stacktrace

2020-12-10 17:47:57 ERROR ContextImpl:? - Unhandled exception
 java.lang.IllegalStateException
     at io.vertx.core.impl.CloseHooks.add(CloseHooks.java:48)
     at io.vertx.core.impl.VertxImpl.createNetClient(VertxImpl.java:297)
     at io.vertx.proton.impl.ProtonClientImpl.connect(ProtonClientImpl.java:64)
     at io.vertx.amqp.impl.AmqpConnectionImpl.connect(AmqpConnectionImpl.java:68)
     at io.vertx.amqp.impl.AmqpConnectionImpl.lambda$new$0(AmqpConnectionImpl.java:59)
     at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:96)
     at io.vertx.core.impl.WorkerContext.lambda$run$1(WorkerContext.java:102)
     at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
     at java.base/java.lang.Thread.run(Unknown Source)

It believe it is either coming from the rxConnect() call after a slight delay, or less likey via makeExecutableSchema call as I never see the follow on logging message.

AmqpClient client = AmqpClient.create(vertx, new AmqpClientOptions());
SchemaGenerator schemaGenerator = new SchemaGenerator();
TypeDefinitionRegistry typeDefinitionRegistry = getSchema(props);
client.rxConnect()
  .doOnError(onError -> /*omitted */)
  .doOnSuccess(onSuccess -> /*omitted */)
  .retryWhen((Flowable<Throwable> f) -> /*omitted */)
  .subscribe(/*omitted */);
RuntimeWiring runtimeWiring = getRuntimeWiring(props);
LOG.info("I see this msg");
GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
LOG.info("I do not see this msg");