|
1 | 1 | package org.codehaus.plexus.compiler.javac;
|
2 | 2 |
|
| 3 | +import org.codehaus.plexus.compiler.CompilerMessage; |
3 | 4 | import org.junit.jupiter.api.BeforeEach;
|
| 5 | +import org.junit.jupiter.api.Test; |
| 6 | + |
| 7 | +import java.io.BufferedReader; |
| 8 | +import java.io.IOException; |
| 9 | +import java.io.StringReader; |
| 10 | +import java.util.List; |
| 11 | + |
| 12 | +import static org.hamcrest.MatcherAssert.assertThat; |
| 13 | +import static org.hamcrest.collection.IsCollectionWithSize.hasSize; |
4 | 14 |
|
5 | 15 | /*
|
6 | 16 | * Licensed to the Apache Software Foundation (ASF) under one
|
@@ -33,4 +43,36 @@ public void setUp()
|
33 | 43 | super.setUp();
|
34 | 44 | setForceJavacCompilerUse( true );
|
35 | 45 | }
|
| 46 | + |
| 47 | + @Test |
| 48 | + void parseModernStream_withAnnotationProcessingErrors() throws IOException |
| 49 | + { |
| 50 | + String input = |
| 51 | + "\n" + |
| 52 | + "\n" + |
| 53 | + "An annotation processor threw an uncaught exception.\n" + |
| 54 | + "Consult the following stack trace for details.\n" + |
| 55 | + "java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1da51a35) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1da51a35\n" + |
| 56 | + "\tat lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment(LombokProcessor.java:433)\n" + |
| 57 | + "\tat lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:92)\n" + |
| 58 | + "\tat lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:160)\n" + |
| 59 | + "\tat lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:213)\n" + |
| 60 | + "\tat lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:64)\n" + |
| 61 | + "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:702)\n" + |
| 62 | + "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:829)\n" + |
| 63 | + "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:925)\n" + |
| 64 | + "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1269)\n" + |
| 65 | + "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1384)\n" + |
| 66 | + "\tat jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1261)\n" + |
| 67 | + "\tat jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:935)\n" + |
| 68 | + "\tat jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)\n" + |
| 69 | + "\tat jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)\n" + |
| 70 | + "\tat jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)\n" + |
| 71 | + "\tat jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)\n"; |
| 72 | + |
| 73 | + List<CompilerMessage> compilerMessages = JavacCompiler.parseModernStream( 1, |
| 74 | + new BufferedReader( new StringReader( input ) ) ); |
| 75 | + |
| 76 | + assertThat( compilerMessages, hasSize( 1 ) ); |
| 77 | + } |
36 | 78 | }
|
0 commit comments