rewrite-java - Parser issue with consecutive comment blocks
nmck257 opened this issue · comments
Test case:
@Test
void consecutiveCommentBlocks() {
rewriteRun(
java(
"""
package org.sample;
//import org.apache.log4j.Logger;
/*import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;*/
/**
* Does stuff
*/
public class MyClass {
/*// private static Logger log = Logger.getLogger(MyClass.class);
private static Logger log = (Logger) LogManager.getLogger(MyClass.class);
*//**
* Does main stuff
*
* @param arguments
*//*
public static void main(String[] args) {
}
*//*public static void main(String[] arguments) {
}*/
}
"""
)
);
}
Result:
org.opentest4j.AssertionFailedError: [When parsing and printing the source code back to text without modifications, the printed source didn't match the original source code. This means there is a bug in the parser implementation itself. Please open an issue to report this, providing a sample of the code that generated this error for "org\sample\MyClass.java":
diff --git a/org/sample/MyClass.java b/org/sample/MyClass.java
index 01d13a3..f0e4660 100644
--- a/org/sample/MyClass.java
+++ b/org/sample/MyClass.java
@@ -14,10 +14,10 @@
* Does main stuff
*
* @param arguments
- *//*
+ *////
public static void main(String[] args) {
}
- *//*public static void main(String[] arguments) {
+ //*public static void main(String[] arguments) {
- }*/
-}
\ No newline at end of file
+ }/
+}//*
\ No newline at end of file
]
expected: "package org.sample;
//import org.apache.log4j.Logger;
/*import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;*/
/**
* Does stuff
*/
public class MyClass {
/*// private static Logger log = Logger.getLogger(MyClass.class);
private static Logger log = (Logger) LogManager.getLogger(MyClass.class);
*//**
* Does main stuff
*
* @param arguments
*//*
public static void main(String[] args) {
}
*//*public static void main(String[] arguments) {
}*/
}"
but was: "package org.sample;
//import org.apache.log4j.Logger;
/*import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;*/
/**
* Does stuff
*/
public class MyClass {
/*// private static Logger log = Logger.getLogger(MyClass.class);
private static Logger log = (Logger) LogManager.getLogger(MyClass.class);
*//**
* Does main stuff
*
* @param arguments
*////
public static void main(String[] args) {
}
//*public static void main(String[] arguments) {
}/
}//*"
at org.openrewrite.test.RewriteTest.assertContentEquals(RewriteTest.java:616)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:311)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:132)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:127)
at org.openrewrite.java.JavaParserTest.consecutiveCommentBlocks(JavaParserTest.java:59)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)