| 
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  | 
@@ -34,4 +43,36 @@ public void setUp()  | 
34 | 43 |         super.setUp();  | 
35 | 44 |         setForceJavacCompilerUse( true );  | 
36 | 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 | +    }  | 
37 | 78 | }  | 
0 commit comments