-
Notifications
You must be signed in to change notification settings - Fork 1k
Java compiler missing annotation warnings halt compilation on windows #7665
Copy link
Copy link
Closed
Labels
Description
Windows
When compiling QueryDSL 5.1.0 generated Java files (with QueryDSL on the classpath) this leads to a halting failure on Windows.
Exception when compiling 23 sources to C:\...\target\scala-2.12\classes`
[error] ## Exception when compiling 23 sources to C:\...\target\scala-2.12\classes
...
[error] Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 3: jar:file:///C:/Users/me/.ivy2/cache/com.querydsl/querydsl-core/jars/querydsl-core-5.1.0.jar!/com/querydsl/core/types/PathMetadataFactory.class
[error] at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:204)
[error] at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:175)
[error] at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
[error] at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
[error] at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:231)
[error] at java.base/java.nio.file.Path.of(Path.java:148)
[error] at java.base/java.nio.file.Paths.get(Paths.java:69)
[error] at sbt.internal.inc.MappedVirtualFile$.toPath(MappedVirtualFile.scala:36)
[error] at sbt.internal.inc.MappedFileConverter.toPath(MappedVirtualFile.scala:53)
[error] at sbt.internal.server.BuildServerReporterImpl.toSafePath(BuildServerReporter.scala:92)
[error] at sbt.internal.server.BuildServerReporterImpl.$anonfun$publishDiagnostic$1(BuildServerReporter.scala:169)
[error] at sbt.internal.server.BuildServerReporterImpl.$anonfun$publishDiagnostic$1$adapted(BuildServerReporter.scala:168)
[error] at scala.Option.foreach(Option.scala:407)
[error] at sbt.internal.server.BuildServerReporterImpl.publishDiagnostic(BuildServerReporter.scala:168)
[error] at sbt.internal.server.BuildServerReporter.log(BuildServerReporter.scala:66)
[error] at sbt.internal.server.BuildServerReporter.log$(BuildServerReporter.scala:59)
[error] at sbt.internal.server.BuildServerReporterImpl.log(BuildServerReporter.scala:74)
[error] at sbt.internal.inc.javac.DiagnosticsReporter.report(DiagnosticsReporter.scala:60)
[error] at jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$WrappedDiagnosticListener.report(ClientCodeWrapper.java:784)
[error] at jdk.compiler/com.sun.tools.javac.util.Log.writeDiagnostic(Log.java:730)
[error] at jdk.compiler/com.sun.tools.javac.util.Log$DefaultDiagnosticHandler.report(Log.java:699)
[error] at jdk.compiler/com.sun.tools.javac.util.Log.report(Log.java:664)
[error] at jdk.compiler/com.sun.tools.javac.util.AbstractLog.warning(AbstractLog.java:163)
[error] at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$AnnotationDeproxy.findAccessMethod(ClassReader.java:2018)
[error] at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$AnnotationDeproxy.deproxyCompound(ClassReader.java:1995)
[error] at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$TypeAnnotationCompleter.deproxyTypeCompoundList(ClassReader.java:2244)
[error] at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$TypeAnnotationCompleter.run(ClassReader.java:2256)
[error] at jdk.compiler/com.sun.tools.javac.comp.Annotate.flush(Annotate.java:191)
[error] at jdk.compiler/com.sun.tools.javac.comp.Annotate.unblockAnnotations(Annotate.java:144)
[error] at jdk.compiler/com.sun.tools.javac.comp.Annotate.enterDone(Annotate.java:157)
[error] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterDone(JavaCompiler.java:1820)
[error] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1074)
[error] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:947)
[error] at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
[error] at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
[error] at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
[error] at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
[error] at sbt.internal.inc.javac.LocalJavaCompiler.run(LocalJava.scala:345)
[error] at sbt.internal.inc.javac.AnalyzingJavaCompiler.$anonfun$compile$12(AnalyzingJavaCompiler.scala:172)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] at sbt.internal.inc.javac.AnalyzingJavaCompiler.timed(AnalyzingJavaCompiler.scala:262)
[error] at sbt.internal.inc.javac.AnalyzingJavaCompiler.compile(AnalyzingJavaCompiler.scala:161)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2(MixedAnalyzingCompiler.scala:103)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$2$adapted(MixedAnalyzingCompiler.scala:91)
[error] at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compileJava$1(MixedAnalyzingCompiler.scala:91)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.compileJava(MixedAnalyzingCompiler.scala:61)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.compileJava0$1(MixedAnalyzingCompiler.scala:198)
[error] at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:209)
[error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534)
[error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534)
[error] at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:180)
[error] at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:178)
[error] at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:464)
[error] at sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
[error] at sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:419)
[error] at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506)
[error] at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:406)
[error] at sbt.internal.inc.Incremental$.apply(Incremental.scala:172)
[error] at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534)
[error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488)
[error] at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425)
[error] at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2371)
[error] at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2321)
[error] at sbt.internal.server.BspCompileTask$.$anonfun$compute$1(BspCompileTask.scala:31)
[error] at sbt.internal.io.Retry$.apply(Retry.scala:47)
[error] at sbt.internal.io.Retry$.apply(Retry.scala:29)
[error] at sbt.internal.io.Retry$.apply(Retry.scala:24)
[error] at sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2319)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] at sbt.Execute.work(Execute.scala:292)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[error] at java.base/java.lang.Thread.run(Thread.java:1583)
Linux
On Linux it shows the true nature of the problem -> warning about Jetbrains annotations not being on the classpath.
[warn] /mnt/c/.../jar:file:/home/me/.ivy2/cache/com.querydsl/querydsl-core/jars/querydsl-core-5.1.0.jar!/com/querydsl/core/types/PathMetadataFactory.class: Cannot find annotation method 'from()' in type 'org.jetbrains.annotations.Range': class file for org.jetbrains.annotations.Range not found
The problem
So it looks like something goes bananas on Windows in the code path were the Java compiler queries the custom FS implementation while generating classpath based warnings.
Workaround
Is to avoid the warning by making sure the annotations are available during compilation.
libraryDependencies += "org.jetbrains" % "annotations" % "24.1.0" % Provided
notes
Issue observed on sbt 1.9.7, but the same for 1.10.1
Eclipse Adoptium Java 21.0.3
Reactions are currently unavailable