|  | 
| 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.assertj.core.api.Assertions.assertThat; | 
| 4 | 13 | 
 | 
| 5 | 14 | /* | 
| 6 | 15 |  * Licensed to the Apache Software Foundation (ASF) under one | 
| @@ -33,4 +42,36 @@ public void setUp() | 
| 33 | 42 |         super.setUp(); | 
| 34 | 43 |         setForceJavacCompilerUse( true ); | 
| 35 | 44 |     } | 
|  | 45 | + | 
|  | 46 | +    @Test | 
|  | 47 | +    void parseModernStream_withAnnotationProcessingErrors() throws IOException | 
|  | 48 | +    { | 
|  | 49 | +        String input = | 
|  | 50 | +                "\n" + | 
|  | 51 | +                "\n" + | 
|  | 52 | +                "An annotation processor threw an uncaught exception.\n" + | 
|  | 53 | +                "Consult the following stack trace for details.\n" + | 
|  | 54 | +                "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" + | 
|  | 55 | +                "\tat lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment(LombokProcessor.java:433)\n" + | 
|  | 56 | +                "\tat lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:92)\n" + | 
|  | 57 | +                "\tat lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:160)\n" + | 
|  | 58 | +                "\tat lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:213)\n" + | 
|  | 59 | +                "\tat lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:64)\n" + | 
|  | 60 | +                "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:702)\n" + | 
|  | 61 | +                "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:829)\n" + | 
|  | 62 | +                "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:925)\n" + | 
|  | 63 | +                "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1269)\n" + | 
|  | 64 | +                "\tat jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1384)\n" + | 
|  | 65 | +                "\tat jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1261)\n" + | 
|  | 66 | +                "\tat jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:935)\n" + | 
|  | 67 | +                "\tat jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)\n" + | 
|  | 68 | +                "\tat jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)\n" + | 
|  | 69 | +                "\tat jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)\n" + | 
|  | 70 | +                "\tat jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)\n"; | 
|  | 71 | + | 
|  | 72 | +        List<CompilerMessage> compilerMessages = JavacCompiler.parseModernStream( 1, | 
|  | 73 | +                new BufferedReader( new StringReader( input ) ) ); | 
|  | 74 | + | 
|  | 75 | +        assertThat( compilerMessages ).hasSize( 1 ); | 
|  | 76 | +    } | 
| 36 | 77 | } | 
0 commit comments