From 177940724c3460c8af2724d54e08e2bd334da386 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 10:45:22 +1000 Subject: [PATCH 1/6] add workaround to jdk bug https://bugs.openjdk.java.net/browse/JDK-8210649 found via https://issues.apache.org/jira/browse/MCOMPILER-346 add IT test from https://github.com/basil/MCOMPILER-346-mre Signed-off-by: Olivier Lamy --- .../src/main/it/MCOMPILER-346-mre | 1 + .../main/it/simple-eclipse-compiler/pom.xml | 2 +- .../compiler/javac/InProcessCompiler.java | 3 +- .../plexus/compiler/javac/JavacCompiler.java | 9 +++- .../compiler/javac/JavaxToolsCompiler.java | 45 +++++++++++++------ 5 files changed, 43 insertions(+), 17 deletions(-) create mode 160000 plexus-compiler-its/src/main/it/MCOMPILER-346-mre diff --git a/plexus-compiler-its/src/main/it/MCOMPILER-346-mre b/plexus-compiler-its/src/main/it/MCOMPILER-346-mre new file mode 160000 index 00000000..33fdb68f --- /dev/null +++ b/plexus-compiler-its/src/main/it/MCOMPILER-346-mre @@ -0,0 +1 @@ +Subproject commit 33fdb68fb6ce2042db7945b873c7b57ee3f65157 diff --git a/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml b/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml index 5beaa3d0..a4efe0c0 100644 --- a/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml +++ b/plexus-compiler-its/src/main/it/simple-eclipse-compiler/pom.xml @@ -55,7 +55,7 @@ eclipse - + org.codehaus.plexus plexus-compiler-api @pom.version@ diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java index c4374eee..65e7f6cc 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/InProcessCompiler.java @@ -3,8 +3,9 @@ import org.codehaus.plexus.compiler.CompilerConfiguration; import org.codehaus.plexus.compiler.CompilerException; import org.codehaus.plexus.compiler.CompilerResult; +import org.codehaus.plexus.logging.LogEnabled; -public interface InProcessCompiler { +public interface InProcessCompiler extends LogEnabled { CompilerResult compileInProcess(String[] args, final CompilerConfiguration config, String[] sourceFiles) throws CompilerException; diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java index 9297d3d4..6ab9f883 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java @@ -70,6 +70,7 @@ import org.codehaus.plexus.compiler.CompilerOutputStyle; import org.codehaus.plexus.compiler.CompilerResult; import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.Os; import org.codehaus.plexus.util.StringUtils; @@ -106,6 +107,9 @@ public class JavacCompiler private List> javaccClasses = new CopyOnWriteArrayList<>(); + @Requirement + private InProcessCompiler inProcessCompiler; + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- @@ -188,7 +192,10 @@ public CompilerResult performCompile( CompilerConfiguration config ) protected InProcessCompiler inProcessCompiler() { - return new org.codehaus.plexus.compiler.javac.JavaxToolsCompiler(); + return inProcessCompiler; +// InProcessCompiler inProcessCompiler = new org.codehaus.plexus.compiler.javac.JavaxToolsCompiler(); +// inProcessCompiler.enableLogging( getLogger() ); +// return inProcessCompiler; } protected static boolean isJava16() diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java index d0b0bd1b..b40ce838 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java @@ -24,6 +24,7 @@ import org.codehaus.plexus.compiler.CompilerException; import org.codehaus.plexus.compiler.CompilerResult; import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.logging.AbstractLogEnabled; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; @@ -36,6 +37,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.concurrent.CopyOnWriteArrayList; /** @@ -43,8 +45,8 @@ * @author David M. Lloyd * @since 2.0 */ -@Component( role = Compiler.class ) -public class JavaxToolsCompiler implements InProcessCompiler +@Component( role = InProcessCompiler.class ) +public class JavaxToolsCompiler extends AbstractLogEnabled implements InProcessCompiler { /** * is that thread safe ??? @@ -102,6 +104,7 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati throws CompilerException { JavaCompiler compiler = getJavaCompiler( config ); + CompilerResult compilerResult; try { if ( compiler == null ) @@ -111,14 +114,15 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati CompilerMessage.Kind.ERROR ); return new CompilerResult( false, Collections.singletonList( message ) ); } - final String sourceEncoding = config.getSourceEncoding(); - final Charset sourceCharset = sourceEncoding == null ? null : Charset.forName( sourceEncoding ); - final DiagnosticCollector collector = new DiagnosticCollector<>(); - try ( final StandardJavaFileManager standardFileManager = + String sourceEncoding = config.getSourceEncoding(); + Charset sourceCharset = sourceEncoding == null ? null : Charset.forName( sourceEncoding ); + DiagnosticCollector collector = new DiagnosticCollector<>(); + ArrayList compilerMsgs = new ArrayList<>(); + try ( StandardJavaFileManager standardFileManager = compiler.getStandardFileManager( collector, null, sourceCharset ) ) { - final Iterable fileObjects = + Iterable fileObjects = standardFileManager.getJavaFileObjectsFromStrings( Arrays.asList( sourceFiles ) ); /*(Writer out, @@ -130,14 +134,26 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati List arguments = Arrays.asList( args ); - final JavaCompiler.CompilationTask task = + JavaCompiler.CompilationTask task = compiler.getTask( null, standardFileManager, collector, arguments, null, fileObjects ); - final Boolean result = task.call(); - final ArrayList compilerMsgs = new ArrayList<>(); + Boolean result = task.call(); + for ( Diagnostic diagnostic : collector.getDiagnostics() ) { - CompilerMessage.Kind kind = convertKind(diagnostic); - String baseMessage = diagnostic.getMessage( null ); + CompilerMessage.Kind kind = convertKind( diagnostic ); + + String baseMessage = null; + try + { + baseMessage = diagnostic.getMessage( Locale.getDefault() ); + } + catch ( AssertionError e ) + { + // workaround for https://bugs.openjdk.java.net/browse/JDK-8210649 + getLogger().debug( "Ignore Issue get JavaCompiler Diagnostic message (see https://bugs.openjdk.java.net/browse/JDK-8210649):" + e.getMessage(), e ); + // in this case we try to replace the baseMessage with toString (hoping this does not throw a new exception.. + baseMessage = diagnostic.toString(); + } if ( baseMessage == null ) { continue; @@ -175,10 +191,10 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati new CompilerMessage( "An unknown compilation problem occurred", CompilerMessage.Kind.ERROR ) ); } - return new CompilerResult( result, compilerMsgs ); + compilerResult = new CompilerResult( result, compilerMsgs ); } } - catch ( Exception e ) + catch ( Throwable e ) { throw new CompilerException( e.getMessage(), e ); } @@ -187,6 +203,7 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati releaseJavaCompiler( compiler, config ); } + return compilerResult; } private CompilerMessage.Kind convertKind(Diagnostic diagnostic) { From 7a39266828b42e45da408572577a4ac6e3cae44e Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 10:48:11 +1000 Subject: [PATCH 2/6] cleanup commented code Signed-off-by: Olivier Lamy --- .../java/org/codehaus/plexus/compiler/javac/JavacCompiler.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java index 6ab9f883..2c9c2f89 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java @@ -193,9 +193,6 @@ public CompilerResult performCompile( CompilerConfiguration config ) protected InProcessCompiler inProcessCompiler() { return inProcessCompiler; -// InProcessCompiler inProcessCompiler = new org.codehaus.plexus.compiler.javac.JavaxToolsCompiler(); -// inProcessCompiler.enableLogging( getLogger() ); -// return inProcessCompiler; } protected static boolean isJava16() From 4e66eb4b907874b2ae7a5d819d10be3a77ec8d17 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 10:48:58 +1000 Subject: [PATCH 3/6] cleanup tabs Signed-off-by: Olivier Lamy --- .../org/codehaus/plexus/compiler/javac/JavacCompiler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java index 2c9c2f89..3885d626 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java @@ -191,9 +191,9 @@ public CompilerResult performCompile( CompilerConfiguration config ) } protected InProcessCompiler inProcessCompiler() - { + { return inProcessCompiler; - } + } protected static boolean isJava16() { From a9ea63a4cbf4f967205529ff85c344521d6af882 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 10:49:29 +1000 Subject: [PATCH 4/6] cleanup tabs Signed-off-by: Olivier Lamy --- .../org/codehaus/plexus/compiler/javac/JavacCompiler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java index 3885d626..c51fdf90 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java @@ -189,8 +189,8 @@ public CompilerResult performCompile( CompilerConfiguration config ) return result; } - - protected InProcessCompiler inProcessCompiler() + + protected InProcessCompiler inProcessCompiler() { return inProcessCompiler; } From cc373ed7066fab571412d20a7139068a7efa3320 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 10:57:55 +1000 Subject: [PATCH 5/6] bump version as an interface changed a bit but not really someone use it as it was not extensible here... :) Signed-off-by: Olivier Lamy --- plexus-compiler-api/pom.xml | 2 +- plexus-compiler-its/pom.xml | 2 +- plexus-compiler-manager/pom.xml | 2 +- plexus-compiler-test/pom.xml | 2 +- plexus-compilers/plexus-compiler-aspectj/pom.xml | 2 +- plexus-compilers/plexus-compiler-csharp/pom.xml | 2 +- plexus-compilers/plexus-compiler-eclipse/pom.xml | 2 +- plexus-compilers/plexus-compiler-j2objc/pom.xml | 2 +- plexus-compilers/plexus-compiler-javac-errorprone/pom.xml | 2 +- plexus-compilers/plexus-compiler-javac/pom.xml | 2 +- .../org/codehaus/plexus/compiler/javac/JavacCompiler.java | 2 +- .../plexus/compiler/javac/JavaxToolsCompiler.java | 8 +++----- plexus-compilers/pom.xml | 2 +- pom.xml | 4 ++-- 14 files changed, 17 insertions(+), 19 deletions(-) diff --git a/plexus-compiler-api/pom.xml b/plexus-compiler-api/pom.xml index 03598c50..48820067 100644 --- a/plexus-compiler-api/pom.xml +++ b/plexus-compiler-api/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-api diff --git a/plexus-compiler-its/pom.xml b/plexus-compiler-its/pom.xml index 9c3b9781..928a089d 100644 --- a/plexus-compiler-its/pom.xml +++ b/plexus-compiler-its/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-its diff --git a/plexus-compiler-manager/pom.xml b/plexus-compiler-manager/pom.xml index 65c6c9a3..9a5c2ec0 100644 --- a/plexus-compiler-manager/pom.xml +++ b/plexus-compiler-manager/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-manager diff --git a/plexus-compiler-test/pom.xml b/plexus-compiler-test/pom.xml index 4bbd1525..7d03d00e 100644 --- a/plexus-compiler-test/pom.xml +++ b/plexus-compiler-test/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-test diff --git a/plexus-compilers/plexus-compiler-aspectj/pom.xml b/plexus-compilers/plexus-compiler-aspectj/pom.xml index 24c7fac9..9af23632 100644 --- a/plexus-compilers/plexus-compiler-aspectj/pom.xml +++ b/plexus-compilers/plexus-compiler-aspectj/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-aspectj diff --git a/plexus-compilers/plexus-compiler-csharp/pom.xml b/plexus-compilers/plexus-compiler-csharp/pom.xml index 40fef831..d58965be 100644 --- a/plexus-compilers/plexus-compiler-csharp/pom.xml +++ b/plexus-compilers/plexus-compiler-csharp/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-csharp diff --git a/plexus-compilers/plexus-compiler-eclipse/pom.xml b/plexus-compilers/plexus-compiler-eclipse/pom.xml index 3374608d..b5f5b41c 100644 --- a/plexus-compilers/plexus-compiler-eclipse/pom.xml +++ b/plexus-compilers/plexus-compiler-eclipse/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-eclipse diff --git a/plexus-compilers/plexus-compiler-j2objc/pom.xml b/plexus-compilers/plexus-compiler-j2objc/pom.xml index fc4c49f3..1c805e2a 100644 --- a/plexus-compilers/plexus-compiler-j2objc/pom.xml +++ b/plexus-compilers/plexus-compiler-j2objc/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-j2objc diff --git a/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml b/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml index c1fd76b4..e54d25ca 100644 --- a/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml +++ b/plexus-compilers/plexus-compiler-javac-errorprone/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-javac-errorprone diff --git a/plexus-compilers/plexus-compiler-javac/pom.xml b/plexus-compilers/plexus-compiler-javac/pom.xml index 5aa5ef67..579a4b78 100644 --- a/plexus-compilers/plexus-compiler-javac/pom.xml +++ b/plexus-compilers/plexus-compiler-javac/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compilers - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compiler-javac diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java index c51fdf90..a0c54090 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java @@ -189,7 +189,7 @@ public CompilerResult performCompile( CompilerConfiguration config ) return result; } - + protected InProcessCompiler inProcessCompiler() { return inProcessCompiler; diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java index b40ce838..007340cf 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java @@ -117,7 +117,6 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati String sourceEncoding = config.getSourceEncoding(); Charset sourceCharset = sourceEncoding == null ? null : Charset.forName( sourceEncoding ); DiagnosticCollector collector = new DiagnosticCollector<>(); - ArrayList compilerMsgs = new ArrayList<>(); try ( StandardJavaFileManager standardFileManager = compiler.getStandardFileManager( collector, null, sourceCharset ) ) { @@ -137,6 +136,7 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati JavaCompiler.CompilationTask task = compiler.getTask( null, standardFileManager, collector, arguments, null, fileObjects ); Boolean result = task.call(); + List compilerMsgs = new ArrayList<>(); for ( Diagnostic diagnostic : collector.getDiagnostics() ) { @@ -191,19 +191,17 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati new CompilerMessage( "An unknown compilation problem occurred", CompilerMessage.Kind.ERROR ) ); } - compilerResult = new CompilerResult( result, compilerMsgs ); + return new CompilerResult( result, compilerMsgs ); } } - catch ( Throwable e ) + catch ( Exception e ) { throw new CompilerException( e.getMessage(), e ); } finally { releaseJavaCompiler( compiler, config ); - } - return compilerResult; } private CompilerMessage.Kind convertKind(Diagnostic diagnostic) { diff --git a/plexus-compilers/pom.xml b/plexus-compilers/pom.xml index e2bdf9d8..886634f0 100644 --- a/plexus-compilers/pom.xml +++ b/plexus-compilers/pom.xml @@ -5,7 +5,7 @@ org.codehaus.plexus plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT plexus-compilers diff --git a/pom.xml b/pom.xml index e57440a9..f550ba7b 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ plexus-compiler - 2.10.1-SNAPSHOT + 2.11.0-SNAPSHOT pom Plexus Compiler @@ -45,7 +45,7 @@ scm:git:git@github.com:codehaus-plexus/plexus-compiler.git 11 true - 2022-02-08T11:49:09Z + 2022-03-06T00:54:21Z 5.8.2 1.9.7.M3 2.11.0 From 21fe710a773d8ced2aa7cc1108421d3268da63ec Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Sun, 6 Mar 2022 11:03:09 +1000 Subject: [PATCH 6/6] cleanup Signed-off-by: Olivier Lamy --- .../codehaus/plexus/compiler/javac/JavaxToolsCompiler.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java index 007340cf..b12a3244 100644 --- a/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java +++ b/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavaxToolsCompiler.java @@ -18,7 +18,6 @@ * under the License. */ -import org.codehaus.plexus.compiler.Compiler; import org.codehaus.plexus.compiler.CompilerConfiguration; import org.codehaus.plexus.compiler.CompilerMessage; import org.codehaus.plexus.compiler.CompilerException; @@ -59,7 +58,7 @@ protected JavaCompiler newJavaCompiler() return ToolProvider.getSystemJavaCompiler(); } - private List JAVA_COMPILERS = new CopyOnWriteArrayList<>(); + private final List JAVA_COMPILERS = new CopyOnWriteArrayList<>(); private JavaCompiler getJavaCompiler( CompilerConfiguration compilerConfiguration ) { @@ -104,7 +103,6 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati throws CompilerException { JavaCompiler compiler = getJavaCompiler( config ); - CompilerResult compilerResult; try { if ( compiler == null ) @@ -142,7 +140,7 @@ public CompilerResult compileInProcess( String[] args, final CompilerConfigurati { CompilerMessage.Kind kind = convertKind( diagnostic ); - String baseMessage = null; + String baseMessage; try { baseMessage = diagnostic.getMessage( Locale.getDefault() );