From 032e501e5cbd946aca98875dc91a56f35bbe37a4 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Fri, 7 Feb 2025 13:31:05 +0100 Subject: [PATCH 1/2] Validate written classes if enabled --- .../org/openrewrite/java/internal/parser/TypeTable.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rewrite-java/src/main/java/org/openrewrite/java/internal/parser/TypeTable.java b/rewrite-java/src/main/java/org/openrewrite/java/internal/parser/TypeTable.java index 3dcb031f123..1c507db69cc 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/internal/parser/TypeTable.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/internal/parser/TypeTable.java @@ -185,7 +185,7 @@ private void writeClassesDir() { ClassWriter cw = new ClassWriter(0); ClassVisitor classWriter = ctx.getMessage(VERIFY_CLASS_WRITING, false) ? - cw : new CheckClassAdapter(cw); + new CheckClassAdapter(cw) : cw; classWriter.visit( V1_8, @@ -204,11 +204,12 @@ private void writeClassesDir() { } for (ClassDefinition innerClass : innerClasses) { + int lastIndexOf$ = innerClass.getName().lastIndexOf('$'); classWriter.visitInnerClass( innerClass.getName(), - classDef.getName(), - innerClass.getName().substring(innerClass.getName().lastIndexOf('$') + 1), - innerClass.getAccess() + innerClass.getName().substring(0, lastIndexOf$), + innerClass.getName().substring(lastIndexOf$ + 1), + innerClass.getAccess() & 30239 ); } From 623cd4eee205bc1c18a0fdefb26fb0908c7fce8c Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Mon, 10 Feb 2025 17:47:41 +0100 Subject: [PATCH 2/2] Do not validate generated classes for now --- .../org/openrewrite/java/internal/parser/TypeTableTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rewrite-java/src/test/java/org/openrewrite/java/internal/parser/TypeTableTest.java b/rewrite-java/src/test/java/org/openrewrite/java/internal/parser/TypeTableTest.java index 9af0b44f1e6..0d84caf4793 100644 --- a/rewrite-java/src/test/java/org/openrewrite/java/internal/parser/TypeTableTest.java +++ b/rewrite-java/src/test/java/org/openrewrite/java/internal/parser/TypeTableTest.java @@ -45,7 +45,7 @@ class TypeTableTest implements RewriteTest { @BeforeEach void before() { - ctx.putMessage(TypeTable.VERIFY_CLASS_WRITING, true); + //TODO Dctx.putMessage(TypeTable.VERIFY_CLASS_WRITING, true); JavaParserExecutionContextView.view(ctx).setParserClasspathDownloadTarget(temp.toFile()); tsv = temp.resolve("types.tsv.zip"); System.out.println(tsv);