From b5642229b42981967881ceab2055823b1cd21494 Mon Sep 17 00:00:00 2001 From: geoand Date: Sat, 28 Jan 2023 15:01:57 +0200 Subject: [PATCH 1/2] Mark generated no-args constructors as synthetic This is useful for code coverage tools Relates to: https://github.com/quarkusio/quarkus/issues/24404#issuecomment-1406922885 --- .../io/quarkus/funqy/deployment/FunctionScannerBuildStep.java | 3 ++- .../src/main/java/io/quarkus/arc/processor/Beans.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/funqy/funqy-server-common/deployment/src/main/java/io/quarkus/funqy/deployment/FunctionScannerBuildStep.java b/extensions/funqy/funqy-server-common/deployment/src/main/java/io/quarkus/funqy/deployment/FunctionScannerBuildStep.java index 2b250b7c68540..dcf4096de963a 100644 --- a/extensions/funqy/funqy-server-common/deployment/src/main/java/io/quarkus/funqy/deployment/FunctionScannerBuildStep.java +++ b/extensions/funqy/funqy-server-common/deployment/src/main/java/io/quarkus/funqy/deployment/FunctionScannerBuildStep.java @@ -201,7 +201,8 @@ public ClassVisitor apply(String className, ClassVisitor classVisitor) { public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); - MethodVisitor ctor = visitMethod(Modifier.PUBLIC, "", "()V", null, + MethodVisitor ctor = visitMethod(Modifier.PUBLIC | Opcodes.ACC_SYNTHETIC, "", "()V", + null, null); ctor.visitCode(); ctor.visitVarInsn(Opcodes.ALOAD, 0); diff --git a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Beans.java b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Beans.java index a1455341c10e4..5a02c4824185b 100644 --- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Beans.java +++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/Beans.java @@ -938,7 +938,7 @@ public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); - MethodVisitor mv = visitMethod(Modifier.PUBLIC, Methods.INIT, "()V", null, + MethodVisitor mv = visitMethod(Modifier.PUBLIC | Opcodes.ACC_SYNTHETIC, Methods.INIT, "()V", null, null); mv.visitCode(); mv.visitVarInsn(Opcodes.ALOAD, 0); From 39959c04331a91aacad2866186aedcbe215710db Mon Sep 17 00:00:00 2001 From: geoand Date: Sat, 28 Jan 2023 15:15:10 +0200 Subject: [PATCH 2/2] Mark generated RR inject methods as synthetic This is useful for code coverage tools Relates to: #24404 --- .../processor/generation/multipart/MultipartTransformer.java | 3 ++- .../server/processor/scanning/ClassInjectorTransformer.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartTransformer.java b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartTransformer.java index 136a806f84e9c..2fecb582fde29 100644 --- a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartTransformer.java +++ b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/generation/multipart/MultipartTransformer.java @@ -70,7 +70,8 @@ public FieldVisitor visitField(int access, String name, String descriptor, Strin @Override public void visitEnd() { - MethodVisitor injectMethod = visitMethod(Opcodes.ACC_PUBLIC, INJECT_METHOD_NAME, INJECT_METHOD_DESCRIPTOR, null, + MethodVisitor injectMethod = visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, INJECT_METHOD_NAME, + INJECT_METHOD_DESCRIPTOR, null, null); injectMethod.visitParameter("ctx", 0 /* modifiers */); injectMethod.visitCode(); diff --git a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/scanning/ClassInjectorTransformer.java b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/scanning/ClassInjectorTransformer.java index d93ebec5de522..ae69d399728f5 100644 --- a/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/scanning/ClassInjectorTransformer.java +++ b/independent-projects/resteasy-reactive/server/processor/src/main/java/org/jboss/resteasy/reactive/server/processor/scanning/ClassInjectorTransformer.java @@ -223,7 +223,8 @@ public void visitEnd() { public void visitEnd() { // FIXME: handle setters // FIXME: handle multi fields - MethodVisitor injectMethod = visitMethod(Opcodes.ACC_PUBLIC, INJECT_METHOD_NAME, INJECT_METHOD_DESCRIPTOR, null, + MethodVisitor injectMethod = visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, INJECT_METHOD_NAME, + INJECT_METHOD_DESCRIPTOR, null, null); injectMethod.visitParameter("ctx", 0 /* modifiers */); injectMethod.visitCode(); @@ -333,7 +334,7 @@ public void visitEnd() { if (!seenClassInit && !partTypes.isEmpty()) { // add a class init method for the part types special fields - MethodVisitor mv = super.visitMethod(Opcodes.ACC_STATIC, "", "()V", null, null); + MethodVisitor mv = super.visitMethod(Opcodes.ACC_STATIC | Opcodes.ACC_SYNTHETIC, "", "()V", null, null); for (Entry entry : partTypes.entrySet()) { generateMultipartFormStaticInit(mv, entry.getKey(), entry.getValue()); }