Repository: quarkusio/quarkus
Issue: @ConsumeEvent annotated method is called twice per message when generic parent class has an abstract method for it

### Describe the bug

Having a class extending a class with generics which has an abstract method for the consumer method, this will result in the method annotated with `@ConsumeEvent` on the extending class to be called twice per eventbus message.

### Expected behavior

Its expected that a method annotated with `@ConsumeEvent` is invoked only once per message.

1. Remove `public abstract void consume(@NonNull T event);` from `GreetingService`
2. Start the application
3. You will notice that the consumer is invoked only once per message


### Actual behavior

Having a class extending a class with generics which has an abstract method for the consumer method, this will result in the method annotated with `@Consume` on the extending class to be called twice per eventbus message.

1. Start the application
2. You will notice duplicated outputs from consumer like `consuming HelloEvent on HelloService: ee73ab41-6b9a-465a-967c-d264046e0cc0`


### How to Reproduce?

Reproducer:

1. Clone https://github.com/benjaminrau/genericdoublesconsumer
2. Start the application
3. See the duplicated output for same UUID (there should be only one)


Ive also prepared a test which shows that the consumer is registered twice in Vertx HandlerMap: `https://github.com/benjaminrau/genericdoublesconsumer/blob/master/src/test/java/org/acme/EventBusTest.java`

### Output of `uname -a` or `ver`

Linux br-builders-nb 5.14.0-1052-oem #59-Ubuntu SMP Fri Sep 9 09:37:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

### Output of `java -version`

openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 17+35-2724) OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.14.2.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information
The log output clearly shows that the consumer is called twice for the same message since the payload is a randomized UUID string.

```
2022-11-30 17:39:41,659 INFO  [org.acm.HelloService] (vert.x-eventloop-thread-1) consuming HelloEvent on HelloService: cdd635b3-f7ee-4a07-adea-56fbebfc5366
2022-11-30 17:39:41,659 INFO  [org.acm.HelloService] (vert.x-eventloop-thread-0) consuming HelloEvent on HelloService: cdd635b3-f7ee-4a07-adea-56fbebfc5366
2022-11-30 17:39:43,659 INFO  [org.acm.HelloService] (vert.x-eventloop-thread-1) consuming HelloEvent on HelloService: eedb7070-d1e8-4686-8e53-c6733926ad52
2022-11-30 17:39:43,659 INFO  [org.acm.HelloService] (vert.x-eventloop-thread-0) consuming HelloEvent on HelloService: eedb7070-d1e8-4686-8e53-c6733926ad52
```

Changed files:
extensions/vertx/deployment/src/main/java/io/quarkus/vertx/deployment/VertxProcessor.java

diff --git a/extensions/vertx/deployment/src/main/java/io/quarkus/vertx/deployment/VertxProcessor.java b/extensions/vertx/deployment/src/main/java/io/quarkus/vertx/deployment/VertxProcessor.java
index 7eeb82fb9f9..2bd342cb402 100644
--- a/extensions/vertx/deployment/src/main/java/io/quarkus/vertx/deployment/VertxProcessor.java
+++ b/extensions/vertx/deployment/src/main/java/io/quarkus/vertx/deployment/VertxProcessor.java
@@ -122,6 +122,9 @@ void collectEventConsumers(
         AnnotationStore annotationStore = beanRegistrationPhase.getContext().get(BuildExtension.Key.ANNOTATION_STORE);
         for (BeanInfo bean : beanRegistrationPhase.getContext().beans().classBeans()) {
             for (MethodInfo method : bean.getTarget().get().asClass().methods()) {
+                if (method.isSynthetic()) {
+                    continue;
+                }
                 AnnotationInstance consumeEvent = annotationStore.getAnnotation(method, CONSUME_EVENT);
                 if (consumeEvent != null) {
                     // Validate method params and return type