Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDK11 breaks incremental compilation #600

Closed
akshaal opened this issue May 10, 2022 · 11 comments
Closed

JDK11 breaks incremental compilation #600

akshaal opened this issue May 10, 2022 · 11 comments

Comments

@akshaal
Copy link
Contributor

akshaal commented May 10, 2022

Running maven with JDK11 triggers recompilation of all source files in project. When it happens, the following can be found in the mvn -X log:

[DEBUG] Invalidating '/modules/java.base/java/lang/Object.class' because could not find class java.lang.Object on the classpath.
...
Modified binary dependencies: Set(/modules/java.base/java/lang/Object.class)
...
Sources indirectly invalidated by:
	product: Set()
	binary dep: Set(/tmp/1/x/X.scala)
	external source: Set()
[DEBUG] all 1 sources are invalidated
[DEBUG] Initial set of included nodes: 
[DEBUG] Recompiling all sources: number of invalidated sources > 50.0% of all sources

If I use java 8 to compile the same project, then everything works fine, the plugin properly reports "[DEBUG] No changes". With java 11 it's quite random, but most often it just recompiles everything.

The test project consist of two files. pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>G</groupId>
    <artifactId>A</artifactId>
    <version>1.2.3-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        
        <scala.version_major>2.13</scala.version_major>
        <scala.version>${scala.version_major}.8</scala.version>
        <scala-maven-plugin.version>4.6.1</scala-maven-plugin.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>${scala-maven-plugin.version}</version>
                <configuration>
                    <sourceDir>./</sourceDir>
                    <scalaVersion>${scala.version}</scalaVersion>
                    <recompileMode>incremental</recompileMode>
                </configuration>

                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                    </execution>

                    <execution>
                        <id>compile-it</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

And an arbitrary scala class like x.scala:

object X

The given test project can be cloned from the gist:

git clone https://gist.github.com/akshaal/bb9f3ad253cc512064d978ccd9488027 test-project

java -version

openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment Temurin-11.0.15+10 (build 11.0.15+10)
OpenJDK 64-Bit Server VM Temurin-11.0.15+10 (build 11.0.15+10, mixed mode)

full trace for mvn -X compile:

mvn -X compile                                                                                                                                                                                          22:33:21 
OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /opt/maven
Java version: 11.0.15, vendor: Eclipse Adoptium, runtime: /opt/jdk-11.0.15+10
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.13.0-40-generic", arch: "amd64", family: "unix"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG]   Imported: javax.annotation.* < plexus.core
[DEBUG]   Imported: javax.annotation.security.* < plexus.core
[DEBUG]   Imported: javax.inject.* < plexus.core
[DEBUG]   Imported: org.apache.maven.* < plexus.core
[DEBUG]   Imported: org.apache.maven.artifact < plexus.core
[DEBUG]   Imported: org.apache.maven.classrealm < plexus.core
[DEBUG]   Imported: org.apache.maven.cli < plexus.core
[DEBUG]   Imported: org.apache.maven.configuration < plexus.core
[DEBUG]   Imported: org.apache.maven.exception < plexus.core
[DEBUG]   Imported: org.apache.maven.execution < plexus.core
[DEBUG]   Imported: org.apache.maven.execution.scope < plexus.core
[DEBUG]   Imported: org.apache.maven.lifecycle < plexus.core
[DEBUG]   Imported: org.apache.maven.model < plexus.core
[DEBUG]   Imported: org.apache.maven.monitor < plexus.core
[DEBUG]   Imported: org.apache.maven.plugin < plexus.core
[DEBUG]   Imported: org.apache.maven.profiles < plexus.core
[DEBUG]   Imported: org.apache.maven.project < plexus.core
[DEBUG]   Imported: org.apache.maven.reporting < plexus.core
[DEBUG]   Imported: org.apache.maven.repository < plexus.core
[DEBUG]   Imported: org.apache.maven.rtinfo < plexus.core
[DEBUG]   Imported: org.apache.maven.settings < plexus.core
[DEBUG]   Imported: org.apache.maven.toolchain < plexus.core
[DEBUG]   Imported: org.apache.maven.usability < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.* < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authentication < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authorization < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.events < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.observers < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.proxy < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.repository < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.resource < plexus.core
[DEBUG]   Imported: org.codehaus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.* < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.component < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.configuration < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.container < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.context < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.lifecycle < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.logging < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.personality < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core
[DEBUG]   Imported: org.eclipse.aether.* < plexus.core
[DEBUG]   Imported: org.eclipse.aether.artifact < plexus.core
[DEBUG]   Imported: org.eclipse.aether.collection < plexus.core
[DEBUG]   Imported: org.eclipse.aether.deployment < plexus.core
[DEBUG]   Imported: org.eclipse.aether.graph < plexus.core
[DEBUG]   Imported: org.eclipse.aether.impl < plexus.core
[DEBUG]   Imported: org.eclipse.aether.installation < plexus.core
[DEBUG]   Imported: org.eclipse.aether.internal.impl < plexus.core
[DEBUG]   Imported: org.eclipse.aether.metadata < plexus.core
[DEBUG]   Imported: org.eclipse.aether.repository < plexus.core
[DEBUG]   Imported: org.eclipse.aether.resolution < plexus.core
[DEBUG]   Imported: org.eclipse.aether.spi < plexus.core
[DEBUG]   Imported: org.eclipse.aether.transfer < plexus.core
[DEBUG]   Imported: org.eclipse.aether.version < plexus.core
[DEBUG]   Imported: org.fusesource.jansi.* < plexus.core
[DEBUG]   Imported: org.slf4j.* < plexus.core
[DEBUG]   Imported: org.slf4j.event.* < plexus.core
[DEBUG]   Imported: org.slf4j.helpers.* < plexus.core
[DEBUG]   Imported: org.slf4j.spi.* < plexus.core
[DEBUG] Populating class realm maven.api
[INFO] Error stacktraces are turned on.
[DEBUG] Message scheme: color
[DEBUG] Message styles: debug info warning error success failure strong mojo project
[DEBUG] Reading global settings from /opt/maven/conf/settings.xml
[DEBUG] Reading user settings from /home/user/.m2/settings.xml
[DEBUG] Reading global toolchains from /opt/maven/conf/toolchains.xml
[DEBUG] Reading user toolchains from /home/user/.m2/toolchains.xml
[DEBUG] Using local repository at /home/user/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /home/user/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Extension realms for project G:A:jar:1.2.3-SNAPSHOT: (none)
[DEBUG] Looking up lifecycle mappings for packaging jar from ClassRealm[plexus.core, parent: null]
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: G:A:jar:1.2.3-SNAPSHOT
[DEBUG] Tasks:   [compile]
[DEBUG] Style:   Regular
[DEBUG] =======================================================================
[INFO] 
[INFO] --------------------------------< G:A >---------------------------------
[INFO] Building A 1.2.3-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for apache.snapshots (http://repository.apache.org/snapshots).
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] === PROJECT BUILD PLAN ================================================
[DEBUG] Project:       G:A:1.2.3-SNAPSHOT
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): [compile]
[DEBUG] Repositories (dependencies): [central (https://repo.maven.apache.org/maven2, default, releases)]
[DEBUG] Repositories (plugins)     : [central (https://repo.maven.apache.org/maven2, default, releases)]
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          net.alchim31.maven:scala-maven-plugin:4.6.1:add-source (add-source)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <project>${project}</project>
  <sourceDir default-value="${project.build.sourceDirectory}/../scala">./</sourceDir>
  <testSourceDir default-value="${project.build.testSourceDirectory}/../scala"/>
  <useCanonicalPath default-value="true">${maven.scala.useCanonicalPath}</useCanonicalPath>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-resources-plugin:2.6:resources (default-resources)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <buildFilters default-value="${project.build.filters}"/>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <escapeString>${maven.resources.escapeString}</escapeString>
  <escapeWindowsPaths default-value="true">${maven.resources.escapeWindowsPaths}</escapeWindowsPaths>
  <includeEmptyDirs default-value="false">${maven.resources.includeEmptyDirs}</includeEmptyDirs>
  <outputDirectory default-value="${project.build.outputDirectory}"/>
  <overwrite default-value="false">${maven.resources.overwrite}</overwrite>
  <project default-value="${project}"/>
  <resources default-value="${project.resources}"/>
  <session default-value="${session}"/>
  <supportMultiLineFiltering default-value="false">${maven.resources.supportMultiLineFiltering}</supportMultiLineFiltering>
  <useBuildFilters default-value="true"/>
  <useDefaultDelimiters default-value="true"/>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          net.alchim31.maven:scala-maven-plugin:4.6.1:compile (compile-it)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <addJavacArgs>${addJavacArgs}</addJavacArgs>
  <addScalacArgs>${addScalacArgs}</addScalacArgs>
  <additionalDependencies>${additionalDependencies}</additionalDependencies>
  <analysisCacheFile default-value="${project.build.directory}/analysis/compile">${analysisCacheFile}</analysisCacheFile>
  <checkMultipleScalaVersions default-value="true">${maven.scala.checkConsistency}</checkMultipleScalaVersions>
  <classpath>${classpath}</classpath>
  <compileOrder default-value="Mixed">${compileOrder}</compileOrder>
  <displayCmd default-value="false">${displayCmd}</displayCmd>
  <encoding default-value="UTF-8">${project.build.sourceEncoding}</encoding>
  <failOnMultipleScalaVersions default-value="false"/>
  <forceUseArgFile default-value="false"/>
  <fork default-value="true"/>
  <javacArgs>${javacArgs}</javacArgs>
  <javacGenerateDebugSymbols default-value="true">${javacGenerateDebugSymbols}</javacGenerateDebugSymbols>
  <notifyCompilation default-value="true">${notifyCompilation}</notifyCompilation>
  <outputDir default-value="${project.build.outputDirectory}">${outputDir}</outputDir>
  <pluginArtifacts default-value="${plugin.artifacts}"/>
  <project>${project}</project>
  <recompileMode default-value="incremental">incremental</recompileMode>
  <release>${maven.compiler.release}</release>
  <scalaClassName>${maven.scala.className}</scalaClassName>
  <scalaCompatVersion>${scala.compat.version}</scalaCompatVersion>
  <scalaHome>${scala.home}</scalaHome>
  <scalaOrganization default-value="org.scala-lang">${scala.organization}</scalaOrganization>
  <scalaVersion>2.13.8</scalaVersion>
  <secondaryCacheDir>${secondaryCacheDir}</secondaryCacheDir>
  <sendJavaToScalac default-value="true"/>
  <session>${session}</session>
  <skipMain>${maven.main.skip}</skipMain>
  <source>${maven.compiler.source}</source>
  <sourceDir default-value="${project.build.sourceDirectory}/../scala">./</sourceDir>
  <target>${maven.compiler.target}</target>
  <useCanonicalPath default-value="true">${maven.scala.useCanonicalPath}</useCanonicalPath>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <basedir default-value="${basedir}"/>
  <buildDirectory default-value="${project.build.directory}"/>
  <classpathElements default-value="${project.compileClasspathElements}"/>
  <compileSourceRoots default-value="${project.compileSourceRoots}"/>
  <compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
  <compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
  <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
  <debug default-value="true">${maven.compiler.debug}</debug>
  <debuglevel>${maven.compiler.debuglevel}</debuglevel>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <executable>${maven.compiler.executable}</executable>
  <failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
  <forceJavacCompilerUse default-value="false">${maven.compiler.forceJavacCompilerUse}</forceJavacCompilerUse>
  <fork default-value="false">${maven.compiler.fork}</fork>
  <generatedSourcesDirectory default-value="${project.build.directory}/generated-sources/annotations"/>
  <maxmem>${maven.compiler.maxmem}</maxmem>
  <meminitial>${maven.compiler.meminitial}</meminitial>
  <mojoExecution>${mojoExecution}</mojoExecution>
  <optimize default-value="false">${maven.compiler.optimize}</optimize>
  <outputDirectory default-value="${project.build.outputDirectory}"/>
  <projectArtifact default-value="${project.artifact}"/>
  <showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
  <showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
  <skipMain>${maven.main.skip}</skipMain>
  <skipMultiThreadWarning default-value="false">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
  <source default-value="1.5">${maven.compiler.source}</source>
  <staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
  <target default-value="1.5">${maven.compiler.target}</target>
  <useIncrementalCompilation default-value="true">${maven.compiler.useIncrementalCompilation}</useIncrementalCompilation>
  <verbose default-value="false">${maven.compiler.verbose}</verbose>
  <mavenSession default-value="${session}"/>
  <session default-value="${session}"/>
</configuration>
[DEBUG] =======================================================================
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=50882, ConflictMarker.markTime=237926, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=27156, ConflictIdSorter.topsortTime=491179, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1297117, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=222495, DefaultDependencyCollector.transformTime=3665894}
[DEBUG] G:A:jar:1.2.3-SNAPSHOT
[INFO] 
[INFO] --- scala-maven-plugin:4.6.1:add-source (add-source) @ A ---
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for codehaus.snapshots (http://snapshots.repository.codehaus.org).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for apache.snapshots (http://people.apache.org/repo/m2-snapshot-repository).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for repository.jboss.org (http://repository.jboss.org/maven2).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for snapshots.jboss.org (http://snapshots.jboss.org/maven2).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for oss.sonatype.org/jboss-snapshots (http://oss.sonatype.org/content/repositories/jboss-snapshots).
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=1158238, ConflictMarker.markTime=401752, ConflictMarker.nodeCount=224, ConflictIdSorter.graphTime=344556, ConflictIdSorter.topsortTime=68622, ConflictIdSorter.conflictIdCount=76, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=6021203, ConflictResolver.conflictItemCount=156, DefaultDependencyCollector.collectTime=279112888, DefaultDependencyCollector.transformTime=8079883}
[DEBUG] net.alchim31.maven:scala-maven-plugin:jar:4.6.1
[DEBUG]    org.apache.maven.shared:maven-dependency-tree:jar:3.1.0:compile
[DEBUG]       org.apache.maven:maven-core:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-settings:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-settings-builder:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-repository-metadata:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-plugin-api:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-model-builder:jar:3.0.5:compile
[DEBUG]          org.apache.maven:maven-aether-provider:jar:3.0.5:compile
[DEBUG]             org.sonatype.aether:aether-spi:jar:1.13.1:compile
[DEBUG]          org.sonatype.aether:aether-impl:jar:1.13.1:compile
[DEBUG]          org.sonatype.aether:aether-api:jar:1.13.1:compile
[DEBUG]          org.sonatype.aether:aether-util:jar:1.13.1:compile
[DEBUG]          org.sonatype.sisu:sisu-inject-plexus:jar:2.3.0:compile
[DEBUG]             org.sonatype.sisu:sisu-inject-bean:jar:2.3.0:compile
[DEBUG]                org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0:compile
[DEBUG]                   org.sonatype.sisu:sisu-guava:jar:0.9.9:compile
[DEBUG]          org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
[DEBUG]          org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
[DEBUG]             org.sonatype.plexus:plexus-cipher:jar:1.4:compile
[DEBUG]       org.eclipse.aether:aether-util:jar:1.1.0:compile
[DEBUG]    org.apache.maven.reporting:maven-reporting-api:jar:3.0:compile
[DEBUG]       org.apache.maven.doxia:doxia-sink-api:jar:1.0:compile
[DEBUG]    org.apache.maven:maven-archiver:jar:3.5.2:compile
[DEBUG]       org.apache.maven:maven-artifact:jar:3.1.1:compile
[DEBUG]       org.apache.maven:maven-model:jar:3.1.1:compile
[DEBUG]       org.apache.maven.shared:maven-shared-utils:jar:3.3.3:compile
[DEBUG]       commons-io:commons-io:jar:2.6:compile
[DEBUG]       org.apache.commons:commons-compress:jar:1.20:compile
[DEBUG]       org.codehaus.plexus:plexus-interpolation:jar:1.26:compile
[DEBUG]    org.apache.commons:commons-exec:jar:1.3:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:3.4.1:compile
[DEBUG]    org.codehaus.plexus:plexus-archiver:jar:4.2.7:compile
[DEBUG]       org.codehaus.plexus:plexus-io:jar:3.2.0:compile
[DEBUG]       org.iq80.snappy:snappy:jar:0.4:compile
[DEBUG]       org.tukaani:xz:jar:1.9:runtime
[DEBUG]    org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
[DEBUG]    org.scala-sbt:zinc_2.13:jar:1.6.1:compile
[DEBUG]       org.scala-lang:scala-library:jar:2.13.6:compile
[DEBUG]       org.scala-sbt:zinc-core_2.13:jar:1.6.1:compile
[DEBUG]          org.scala-sbt:zinc-apiinfo_2.13:jar:1.6.1:compile
[DEBUG]             org.scala-sbt:compiler-bridge_2.13:jar:1.6.1:compile
[DEBUG]          org.scala-sbt:zinc-classpath_2.13:jar:1.6.1:compile
[DEBUG]             org.scala-lang:scala-compiler:jar:2.13.6:compile
[DEBUG]          org.scala-sbt:compiler-interface:jar:1.6.1:compile
[DEBUG]             org.scala-sbt:util-interface:jar:1.6.1:compile
[DEBUG]          org.scala-sbt:zinc-persist-core-assembly:jar:1.6.1:compile
[DEBUG]          org.scala-lang.modules:scala-parallel-collections_2.13:jar:0.2.0:compile
[DEBUG]          org.scala-sbt:io_2.13:jar:1.6.0:compile
[DEBUG]             com.swoval:file-tree-views:jar:2.1.7:compile
[DEBUG]             net.java.dev.jna:jna:jar:5.8.0:compile
[DEBUG]             net.java.dev.jna:jna-platform:jar:5.8.0:compile
[DEBUG]          org.scala-sbt:util-logging_2.13:jar:1.6.1:compile
[DEBUG]             org.scala-sbt:collections_2.13:jar:1.6.1:compile
[DEBUG]                org.scala-sbt:util-position_2.13:jar:1.6.1:compile
[DEBUG]             org.scala-sbt:core-macros_2.13:jar:1.6.1:compile
[DEBUG]             org.jline:jline-terminal:jar:3.19.0:compile
[DEBUG]             org.scala-lang:scala-reflect:jar:2.13.6:compile
[DEBUG]          org.scala-sbt:util-relation_2.13:jar:1.6.1:compile
[DEBUG]       org.scala-sbt:zinc-persist_2.13:jar:1.6.1:compile
[DEBUG]       org.scala-sbt:zinc-compile-core_2.13:jar:1.6.1:compile
[DEBUG]          org.scala-lang.modules:scala-parser-combinators_2.13:jar:1.1.2:compile
[DEBUG]          net.openhft:zero-allocation-hashing:jar:0.10.1:compile
[DEBUG]          org.scala-sbt:util-control_2.13:jar:1.6.1:compile
[DEBUG]       org.scala-sbt:zinc-classfile_2.13:jar:1.6.1:compile
[DEBUG] Created new class realm plugin>net.alchim31.maven:scala-maven-plugin:4.6.1
[DEBUG] Importing foreign packages into class realm plugin>net.alchim31.maven:scala-maven-plugin:4.6.1
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>net.alchim31.maven:scala-maven-plugin:4.6.1
[DEBUG]   Included: net.alchim31.maven:scala-maven-plugin:jar:4.6.1
[DEBUG]   Included: org.apache.maven.shared:maven-dependency-tree:jar:3.1.0
[DEBUG]   Included: org.sonatype.aether:aether-util:jar:1.13.1
[DEBUG]   Included: org.sonatype.sisu:sisu-inject-bean:jar:2.3.0
[DEBUG]   Included: org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0
[DEBUG]   Included: org.sonatype.sisu:sisu-guava:jar:0.9.9
[DEBUG]   Included: org.codehaus.plexus:plexus-component-annotations:jar:1.5.5
[DEBUG]   Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3
[DEBUG]   Included: org.sonatype.plexus:plexus-cipher:jar:1.4
[DEBUG]   Included: org.eclipse.aether:aether-util:jar:1.1.0
[DEBUG]   Included: org.apache.maven.reporting:maven-reporting-api:jar:3.0
[DEBUG]   Included: org.apache.maven.doxia:doxia-sink-api:jar:1.0
[DEBUG]   Included: org.apache.maven:maven-archiver:jar:3.5.2
[DEBUG]   Included: org.apache.maven.shared:maven-shared-utils:jar:3.3.3
[DEBUG]   Included: commons-io:commons-io:jar:2.6
[DEBUG]   Included: org.apache.commons:commons-compress:jar:1.20
[DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.26
[DEBUG]   Included: org.apache.commons:commons-exec:jar:1.3
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:3.4.1
[DEBUG]   Included: org.codehaus.plexus:plexus-archiver:jar:4.2.7
[DEBUG]   Included: org.codehaus.plexus:plexus-io:jar:3.2.0
[DEBUG]   Included: org.iq80.snappy:snappy:jar:0.4
[DEBUG]   Included: org.tukaani:xz:jar:1.9
[DEBUG]   Included: org.scala-sbt:zinc_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-lang:scala-library:jar:2.13.6
[DEBUG]   Included: org.scala-sbt:zinc-core_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-apiinfo_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:compiler-bridge_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-classpath_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-lang:scala-compiler:jar:2.13.6
[DEBUG]   Included: org.scala-sbt:compiler-interface:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:util-interface:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-persist-core-assembly:jar:1.6.1
[DEBUG]   Included: org.scala-lang.modules:scala-parallel-collections_2.13:jar:0.2.0
[DEBUG]   Included: org.scala-sbt:io_2.13:jar:1.6.0
[DEBUG]   Included: com.swoval:file-tree-views:jar:2.1.7
[DEBUG]   Included: net.java.dev.jna:jna:jar:5.8.0
[DEBUG]   Included: net.java.dev.jna:jna-platform:jar:5.8.0
[DEBUG]   Included: org.scala-sbt:util-logging_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:collections_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:util-position_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:core-macros_2.13:jar:1.6.1
[DEBUG]   Included: org.jline:jline-terminal:jar:3.19.0
[DEBUG]   Included: org.scala-lang:scala-reflect:jar:2.13.6
[DEBUG]   Included: org.scala-sbt:util-relation_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-persist_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-compile-core_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-lang.modules:scala-parser-combinators_2.13:jar:1.1.2
[DEBUG]   Included: net.openhft:zero-allocation-hashing:jar:0.10.1
[DEBUG]   Included: org.scala-sbt:util-control_2.13:jar:1.6.1
[DEBUG]   Included: org.scala-sbt:zinc-classfile_2.13:jar:1.6.1
[DEBUG] Configuring mojo net.alchim31.maven:scala-maven-plugin:4.6.1:add-source from plugin realm ClassRealm[plugin>net.alchim31.maven:scala-maven-plugin:4.6.1, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc]
[DEBUG] Configuring mojo 'net.alchim31.maven:scala-maven-plugin:4.6.1:add-source' with basic configurator -->
[DEBUG]   (f) project = MavenProject: G:A:1.2.3-SNAPSHOT @ /tmp/1/x/pom.xml
[DEBUG]   (f) sourceDir = /tmp/1/x
[DEBUG]   (f) testSourceDir = /tmp/1/x/src/test/java/../scala
[DEBUG]   (f) useCanonicalPath = true
[DEBUG] -- end configuration --
[INFO] Add Source directory: /tmp/1/x
[INFO] Add Test Source directory: /tmp/1/x/src/test/scala
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ A ---
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for snapshots (http://snapshots.maven.codehaus.org/maven2).
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for central (http://repo1.maven.org/maven2).
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=414301, ConflictMarker.markTime=150527, ConflictMarker.nodeCount=77, ConflictIdSorter.graphTime=208467, ConflictIdSorter.topsortTime=34693, ConflictIdSorter.conflictIdCount=26, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1089605, ConflictResolver.conflictItemCount=74, DefaultDependencyCollector.collectTime=76741613, DefaultDependencyCollector.transformTime=1937977}
[DEBUG] org.apache.maven.plugins:maven-resources-plugin:jar:2.6
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-project:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-core:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.6:compile
[DEBUG]       org.apache.maven.reporting:maven-reporting-api:jar:2.0.6:compile
[DEBUG]          org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7:compile
[DEBUG]       org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-error-diagnostics:jar:2.0.6:compile
[DEBUG]       commons-cli:commons-cli:jar:1.0:compile
[DEBUG]       org.apache.maven:maven-plugin-descriptor:jar:2.0.6:compile
[DEBUG]       org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile
[DEBUG]       classworlds:classworlds:jar:1.1:compile
[DEBUG]    org.apache.maven:maven-artifact:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-settings:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-model:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-monitor:jar:2.0.6:compile
[DEBUG]    org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
[DEBUG]       junit:junit:jar:3.8.1:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:2.0.5:compile
[DEBUG]    org.apache.maven.shared:maven-filtering:jar:1.1:compile
[DEBUG]       org.sonatype.plexus:plexus-build-api:jar:0.0.4:compile
[DEBUG]    org.codehaus.plexus:plexus-interpolation:jar:1.13:compile
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.6
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.6
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.6
[DEBUG]   Included: org.apache.maven.plugins:maven-resources-plugin:jar:2.6
[DEBUG]   Included: org.apache.maven.reporting:maven-reporting-api:jar:2.0.6
[DEBUG]   Included: org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7
[DEBUG]   Included: commons-cli:commons-cli:jar:1.0
[DEBUG]   Included: org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4
[DEBUG]   Included: junit:junit:jar:3.8.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:2.0.5
[DEBUG]   Included: org.apache.maven.shared:maven-filtering:jar:1.1
[DEBUG]   Included: org.sonatype.plexus:plexus-build-api:jar:0.0.4
[DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.13
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.6:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.6, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.6:resources' with basic configurator -->
[DEBUG]   (f) buildFilters = []
[DEBUG]   (f) escapeWindowsPaths = true
[DEBUG]   (s) includeEmptyDirs = false
[DEBUG]   (s) outputDirectory = /tmp/1/x/target/classes
[DEBUG]   (s) overwrite = false
[DEBUG]   (f) project = MavenProject: G:A:1.2.3-SNAPSHOT @ /tmp/1/x/pom.xml
[DEBUG]   (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: /tmp/1/x/src/main/resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@6ede46f6
[DEBUG]   (f) supportMultiLineFiltering = false
[DEBUG]   (f) useBuildFilters = true
[DEBUG]   (s) useDefaultDelimiters = true
[DEBUG] -- end configuration --
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[DEBUG] resource with targetPath null
directory /tmp/1/x/src/main/resources
excludes []
includes []
[INFO] skip non existing resourceDirectory /tmp/1/x/src/main/resources
[DEBUG] no use filter components
[INFO] 
[INFO] --- scala-maven-plugin:4.6.1:compile (compile-it) @ A ---
[DEBUG] Configuring mojo net.alchim31.maven:scala-maven-plugin:4.6.1:compile from plugin realm ClassRealm[plugin>net.alchim31.maven:scala-maven-plugin:4.6.1, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc]
[DEBUG] Configuring mojo 'net.alchim31.maven:scala-maven-plugin:4.6.1:compile' with basic configurator -->
[DEBUG]   (f) additionalDependencies = []
[DEBUG]   (f) analysisCacheFile = /tmp/1/x/target/analysis/compile
[DEBUG]   (f) checkMultipleScalaVersions = true
[DEBUG]   (f) classpath = scala_maven.Classpath@6981f8f3
[DEBUG]   (f) compileOrder = Mixed
[DEBUG]   (f) displayCmd = false
[DEBUG]   (f) encoding = UTF-8
[DEBUG]   (f) failOnMultipleScalaVersions = false
[DEBUG]   (f) forceUseArgFile = false
[DEBUG]   (f) fork = true
[DEBUG]   (f) javacArgs = []
[DEBUG]   (f) javacGenerateDebugSymbols = true
[DEBUG]   (f) notifyCompilation = true
[DEBUG]   (f) outputDir = /tmp/1/x/target/classes
[DEBUG]   (f) pluginArtifacts = [net.alchim31.maven:scala-maven-plugin:maven-plugin:4.6.1:, org.apache.maven.shared:maven-dependency-tree:jar:3.1.0:compile, org.apache.maven:maven-core:jar:3.0.5:compile, org.apache.maven:maven-settings:jar:3.0.5:compile, org.apache.maven:maven-settings-builder:jar:3.0.5:compile, org.apache.maven:maven-repository-metadata:jar:3.0.5:compile, org.apache.maven:maven-plugin-api:jar:3.0.5:compile, org.apache.maven:maven-model-builder:jar:3.0.5:compile, org.apache.maven:maven-aether-provider:jar:3.0.5:compile, org.sonatype.aether:aether-spi:jar:1.13.1:compile, org.sonatype.aether:aether-impl:jar:1.13.1:compile, org.sonatype.aether:aether-api:jar:1.13.1:compile, org.sonatype.aether:aether-util:jar:1.13.1:compile, org.sonatype.sisu:sisu-inject-plexus:jar:2.3.0:compile, org.sonatype.sisu:sisu-inject-bean:jar:2.3.0:compile, org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.0:compile, org.sonatype.sisu:sisu-guava:jar:0.9.9:compile, org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile, org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile, org.sonatype.plexus:plexus-cipher:jar:1.4:compile, org.eclipse.aether:aether-util:jar:1.1.0:compile, org.apache.maven.reporting:maven-reporting-api:jar:3.0:compile, org.apache.maven.doxia:doxia-sink-api:jar:1.0:compile, org.apache.maven:maven-archiver:jar:3.5.2:compile, org.apache.maven:maven-artifact:jar:3.1.1:compile, org.apache.maven:maven-model:jar:3.1.1:compile, org.apache.maven.shared:maven-shared-utils:jar:3.3.3:compile, commons-io:commons-io:jar:2.6:compile, org.apache.commons:commons-compress:jar:1.20:compile, org.codehaus.plexus:plexus-interpolation:jar:1.26:compile, org.apache.commons:commons-exec:jar:1.3:compile, org.codehaus.plexus:plexus-utils:jar:3.4.1:compile, org.codehaus.plexus:plexus-archiver:jar:4.2.7:compile, org.codehaus.plexus:plexus-io:jar:3.2.0:compile, org.iq80.snappy:snappy:jar:0.4:compile, org.tukaani:xz:jar:1.9:runtime, org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile, org.scala-sbt:zinc_2.13:jar:1.6.1:compile, org.scala-lang:scala-library:jar:2.13.6:compile, org.scala-sbt:zinc-core_2.13:jar:1.6.1:compile, org.scala-sbt:zinc-apiinfo_2.13:jar:1.6.1:compile, org.scala-sbt:compiler-bridge_2.13:jar:1.6.1:compile, org.scala-sbt:zinc-classpath_2.13:jar:1.6.1:compile, org.scala-lang:scala-compiler:jar:2.13.6:compile, org.scala-sbt:compiler-interface:jar:1.6.1:compile, org.scala-sbt:util-interface:jar:1.6.1:compile, org.scala-sbt:zinc-persist-core-assembly:jar:1.6.1:compile, org.scala-lang.modules:scala-parallel-collections_2.13:jar:0.2.0:compile, org.scala-sbt:io_2.13:jar:1.6.0:compile, com.swoval:file-tree-views:jar:2.1.7:compile, net.java.dev.jna:jna:jar:5.8.0:compile, net.java.dev.jna:jna-platform:jar:5.8.0:compile, org.scala-sbt:util-logging_2.13:jar:1.6.1:compile, org.scala-sbt:collections_2.13:jar:1.6.1:compile, org.scala-sbt:util-position_2.13:jar:1.6.1:compile, org.scala-sbt:core-macros_2.13:jar:1.6.1:compile, org.jline:jline-terminal:jar:3.19.0:compile, org.scala-lang:scala-reflect:jar:2.13.6:compile, org.scala-sbt:util-relation_2.13:jar:1.6.1:compile, org.scala-sbt:zinc-persist_2.13:jar:1.6.1:compile, org.scala-sbt:zinc-compile-core_2.13:jar:1.6.1:compile, org.scala-lang.modules:scala-parser-combinators_2.13:jar:1.1.2:compile, net.openhft:zero-allocation-hashing:jar:0.10.1:compile, org.scala-sbt:util-control_2.13:jar:1.6.1:compile, org.scala-sbt:zinc-classfile_2.13:jar:1.6.1:compile]
[DEBUG]   (f) project = MavenProject: G:A:1.2.3-SNAPSHOT @ /tmp/1/x/pom.xml
[DEBUG]   (f) recompileMode = incremental
[DEBUG]   (f) scalaOrganization = org.scala-lang
[DEBUG]   (f) scalaVersion = 2.13.8
[DEBUG]   (f) sendJavaToScalac = true
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@6ede46f6
[DEBUG]   (f) source = 11
[DEBUG]   (f) sourceDir = /tmp/1/x
[DEBUG]   (f) target = 11
[DEBUG]   (f) useCanonicalPath = true
[DEBUG] -- end configuration --
[DEBUG] Checking for multiple versions of scala
[DEBUG] building maven31 dependency graph for G:A:jar:1.2.3-SNAPSHOT with Maven31DependencyGraphBuilder
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=57612, ConflictMarker.markTime=24441, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=16039, ConflictIdSorter.topsortTime=8017, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=17998, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=5443, DefaultDependencyCollector.transformTime=141036}
[DEBUG] G:A:jar:1.2.3-SNAPSHOT
[DEBUG] /tmp/1/x
[DEBUG] includes = [**/*.java,**/*.scala,]
[DEBUG] excludes = []
[DEBUG] compilerJars: /home/user/.m2/repository/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar:/home/user/.m2/repository/org/jline/jline/3.21.0/jline-3.21.0.jar:/home/user/.m2/repository/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar
[DEBUG] libraryJars: /home/user/.m2/repository/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
[INFO] Using incremental compilation using Mixed compile order
[INFO] Compiler bridge file: /home/user/.sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.13-1.6.1-bin_2.13.8__55.0-1.6.1_20220117T214008.jar
[DEBUG] [zinc] IncrementalCompile -----------
[DEBUG] IncrementalCompile.incrementalCompile
[DEBUG] previous = Stamps for: 2 products, 1 sources, 1 libraries
[DEBUG] current source = Set(/tmp/1/x/X.scala)
[DEBUG] Invalidating '/modules/java.base/java/lang/Object.class' because could not find class java.lang.Object on the classpath.
[DEBUG] > initialChanges = InitialChanges(Changes(added = Set(), removed = Set(), changed = Set(), unmodified = ...),Set(),Set(/modules/java.base/java/lang/Object.class),API Changes: Set())
[DEBUG] 
Initial source changes:
	removed: Set()
	added: Set()
	modified: Set()
Invalidated products: Set()
External API changes: API Changes: Set()
Modified binary dependencies: Set(/modules/java.base/java/lang/Object.class)
Initial directly invalidated classes: Set()
Sources indirectly invalidated by:
	product: Set()
	binary dep: Set(/tmp/1/x/X.scala)
	external source: Set()
[DEBUG] all 1 sources are invalidated
[DEBUG] Initial set of included nodes: 
[DEBUG] Recompiling all sources: number of invalidated sources > 50.0% of all sources
[DEBUG] compilation cycle 1
[INFO] compiling 1 Scala source to /tmp/1/x/target/classes ...
[DEBUG] Returning already retrieved and compiled bridge: /home/user/.sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.13-1.6.1-bin_2.13.8__55.0-1.6.1_20220117T214008.jar.
[DEBUG] [zinc] Running cached compiler 5c0e2ec for Scala compiler version 2.13.8
[DEBUG] [zinc] The Scala compiler is invoked with:
	-target:11
	-bootclasspath
	
	-classpath
	/tmp/1/x/target/classes:/home/user/.m2/repository/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar:/home/user/.m2/repository/org/jline/jline/3.21.0/jline-3.21.0.jar:/home/user/.m2/repository/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar
[DEBUG] Scala compilation took 1.834386269 s
[INFO] done compiling
[INFO] compile in 2.6 s
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ A ---
[DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for apache-snapshots (http://people.apache.org/repo/m2-snapshot-repository).
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=499995, ConflictMarker.markTime=113040, ConflictMarker.nodeCount=160, ConflictIdSorter.graphTime=123469, ConflictIdSorter.topsortTime=39339, ConflictIdSorter.conflictIdCount=43, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=841605, ConflictResolver.conflictItemCount=63, DefaultDependencyCollector.collectTime=78985831, DefaultDependencyCollector.transformTime=1646633}
[DEBUG] org.apache.maven.plugins:maven-compiler-plugin:jar:3.1
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.9:compile
[DEBUG]    org.apache.maven:maven-artifact:jar:2.0.9:compile
[DEBUG]       org.codehaus.plexus:plexus-utils:jar:1.5.1:compile
[DEBUG]    org.apache.maven:maven-core:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-settings:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-model:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-repository-metadata:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-error-diagnostics:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-project:jar:2.0.9:compile
[DEBUG]          org.apache.maven:maven-plugin-registry:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-plugin-descriptor:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-monitor:jar:2.0.9:compile
[DEBUG]    org.apache.maven:maven-toolchain:jar:1.0:compile
[DEBUG]    org.apache.maven.shared:maven-shared-utils:jar:0.1:compile
[DEBUG]       com.google.code.findbugs:jsr305:jar:2.0.1:compile
[DEBUG]    org.apache.maven.shared:maven-shared-incremental:jar:1.1:compile
[DEBUG]       org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile (version managed from default)
[DEBUG]    org.codehaus.plexus:plexus-compiler-api:jar:2.2:compile
[DEBUG]    org.codehaus.plexus:plexus-compiler-manager:jar:2.2:compile
[DEBUG]    org.codehaus.plexus:plexus-compiler-javac:jar:2.2:runtime
[DEBUG]    org.codehaus.plexus:plexus-container-default:jar:1.5.5:compile
[DEBUG]       org.codehaus.plexus:plexus-classworlds:jar:2.2.2:compile
[DEBUG]       org.apache.xbean:xbean-reflect:jar:3.4:compile
[DEBUG]          log4j:log4j:jar:1.2.12:compile
[DEBUG]          commons-logging:commons-logging-api:jar:1.1:compile
[DEBUG]       com.google.collections:google-collections:jar:1.0:compile
[DEBUG]       junit:junit:jar:3.8.2:compile
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.1
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.1
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.1
[DEBUG]   Included: org.apache.maven.plugins:maven-compiler-plugin:jar:3.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:1.5.1
[DEBUG]   Included: org.apache.maven.shared:maven-shared-utils:jar:0.1
[DEBUG]   Included: com.google.code.findbugs:jsr305:jar:2.0.1
[DEBUG]   Included: org.apache.maven.shared:maven-shared-incremental:jar:1.1
[DEBUG]   Included: org.codehaus.plexus:plexus-component-annotations:jar:1.5.5
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-api:jar:2.2
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-manager:jar:2.2
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-javac:jar:2.2
[DEBUG]   Included: org.apache.xbean:xbean-reflect:jar:3.4
[DEBUG]   Included: log4j:log4j:jar:1.2.12
[DEBUG]   Included: commons-logging:commons-logging-api:jar:1.1
[DEBUG]   Included: com.google.collections:google-collections:jar:1.0
[DEBUG]   Included: junit:junit:jar:3.8.2
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.1:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.1, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@277050dc]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.1:compile' with basic configurator -->
[DEBUG]   (f) basedir = /tmp/1/x
[DEBUG]   (f) buildDirectory = /tmp/1/x/target
[DEBUG]   (f) classpathElements = [/tmp/1/x/target/classes]
[DEBUG]   (f) compileSourceRoots = [/tmp/1/x/src/main/java, /tmp/1/x]
[DEBUG]   (f) compilerId = javac
[DEBUG]   (f) debug = true
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) forceJavacCompilerUse = false
[DEBUG]   (f) fork = false
[DEBUG]   (f) generatedSourcesDirectory = /tmp/1/x/target/generated-sources/annotations
[DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.1:compile {execution: default-compile}
[DEBUG]   (f) optimize = false
[DEBUG]   (f) outputDirectory = /tmp/1/x/target/classes
[DEBUG]   (f) projectArtifact = G:A:jar:1.2.3-SNAPSHOT
[DEBUG]   (f) showDeprecation = false
[DEBUG]   (f) showWarnings = false
[DEBUG]   (f) skipMultiThreadWarning = false
[DEBUG]   (f) source = 11
[DEBUG]   (f) staleMillis = 0
[DEBUG]   (f) target = 11
[DEBUG]   (f) useIncrementalCompilation = true
[DEBUG]   (f) verbose = false
[DEBUG]   (f) mavenSession = org.apache.maven.execution.MavenSession@6ede46f6
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@6ede46f6
[DEBUG] -- end configuration --
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/tmp/1/x]
[DEBUG] Classpath: [/tmp/1/x/target/classes]
[DEBUG] Output directory: /tmp/1/x/target/classes
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] useIncrementalCompilation enabled
@akshaal
Copy link
Contributor Author

akshaal commented May 10, 2022

Also a diff between two invocations of mvn -X compile: one when the plugin decides to recompile everything and one where it decides that there is nothing to recompile.

--- nok	2022-05-10 23:11:21.058018406 +0200
+++ ok	2022-05-10 23:12:10.817908605 +0200
@@ -218,7 +218,7 @@
   <session default-value="${session}"/>
 </configuration>
 [DEBUG] =======================================================================
-[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=50882, ConflictMarker.markTime=237926, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=27156, ConflictIdSorter.topsortTime=491179, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1297117, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=222495, DefaultDependencyCollector.transformTime=3665894}
+[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=39355, ConflictMarker.markTime=170048, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=19208, ConflictIdSorter.topsortTime=351513, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=861743, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=126626, DefaultDependencyCollector.transformTime=2545553}
 [DEBUG] G:A:jar:1.2.3-SNAPSHOT
 [INFO] 
 [INFO] --- scala-maven-plugin:4.6.1:add-source (add-source) @ A ---
@@ -227,7 +227,7 @@
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for repository.jboss.org (http://repository.jboss.org/maven2).
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for snapshots.jboss.org (http://snapshots.jboss.org/maven2).
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for oss.sonatype.org/jboss-snapshots (http://oss.sonatype.org/content/repositories/jboss-snapshots).
-[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=1158238, ConflictMarker.markTime=401752, ConflictMarker.nodeCount=224, ConflictIdSorter.graphTime=344556, ConflictIdSorter.topsortTime=68622, ConflictIdSorter.conflictIdCount=76, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=6021203, ConflictResolver.conflictItemCount=156, DefaultDependencyCollector.collectTime=279112888, DefaultDependencyCollector.transformTime=8079883}
+[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=1111817, ConflictMarker.markTime=294304, ConflictMarker.nodeCount=224, ConflictIdSorter.graphTime=324008, ConflictIdSorter.topsortTime=69775, ConflictIdSorter.conflictIdCount=76, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=5976739, ConflictResolver.conflictItemCount=156, DefaultDependencyCollector.collectTime=271602963, DefaultDependencyCollector.transformTime=7878041}
 [DEBUG] net.alchim31.maven:scala-maven-plugin:jar:4.6.1
 [DEBUG]    org.apache.maven.shared:maven-dependency-tree:jar:3.1.0:compile
 [DEBUG]       org.apache.maven:maven-core:jar:3.0.5:compile
@@ -361,7 +361,7 @@
 [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ A ---
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for snapshots (http://snapshots.maven.codehaus.org/maven2).
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for central (http://repo1.maven.org/maven2).
-[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=414301, ConflictMarker.markTime=150527, ConflictMarker.nodeCount=77, ConflictIdSorter.graphTime=208467, ConflictIdSorter.topsortTime=34693, ConflictIdSorter.conflictIdCount=26, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1089605, ConflictResolver.conflictItemCount=74, DefaultDependencyCollector.collectTime=76741613, DefaultDependencyCollector.transformTime=1937977}
+[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=252925, ConflictMarker.markTime=103188, ConflictMarker.nodeCount=77, ConflictIdSorter.graphTime=115615, ConflictIdSorter.topsortTime=41435, ConflictIdSorter.conflictIdCount=26, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=683761, ConflictResolver.conflictItemCount=74, DefaultDependencyCollector.collectTime=55408679, DefaultDependencyCollector.transformTime=1228206}
 [DEBUG] org.apache.maven.plugins:maven-resources-plugin:jar:2.6
 [DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.6:compile
 [DEBUG]    org.apache.maven:maven-project:jar:2.0.6:compile
@@ -457,7 +457,7 @@
 [DEBUG] -- end configuration --
 [DEBUG] Checking for multiple versions of scala
 [DEBUG] building maven31 dependency graph for G:A:jar:1.2.3-SNAPSHOT with Maven31DependencyGraphBuilder
-[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=57612, ConflictMarker.markTime=24441, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=16039, ConflictIdSorter.topsortTime=8017, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=17998, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=5443, DefaultDependencyCollector.transformTime=141036}
+[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=30205, ConflictMarker.markTime=19124, ConflictMarker.nodeCount=1, ConflictIdSorter.graphTime=2754, ConflictIdSorter.topsortTime=4687, ConflictIdSorter.conflictIdCount=0, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=12748, ConflictResolver.conflictItemCount=0, DefaultDependencyCollector.collectTime=3872, DefaultDependencyCollector.transformTime=82106}
 [DEBUG] G:A:jar:1.2.3-SNAPSHOT
 [DEBUG] /tmp/1/x
 [DEBUG] includes = [**/*.java,**/*.scala,]
@@ -470,41 +470,13 @@
 [DEBUG] IncrementalCompile.incrementalCompile
 [DEBUG] previous = Stamps for: 2 products, 1 sources, 1 libraries
 [DEBUG] current source = Set(/tmp/1/x/X.scala)
-[DEBUG] Invalidating '/modules/java.base/java/lang/Object.class' because could not find class java.lang.Object on the classpath.
-[DEBUG] > initialChanges = InitialChanges(Changes(added = Set(), removed = Set(), changed = Set(), unmodified = ...),Set(),Set(/modules/java.base/java/lang/Object.class),API Changes: Set())
-[DEBUG] 
-Initial source changes:
-	removed: Set()
-	added: Set()
-	modified: Set()
-Invalidated products: Set()
-External API changes: API Changes: Set()
-Modified binary dependencies: Set(/modules/java.base/java/lang/Object.class)
-Initial directly invalidated classes: Set()
-Sources indirectly invalidated by:
-	product: Set()
-	binary dep: Set(/tmp/1/x/X.scala)
-	external source: Set()
-[DEBUG] all 1 sources are invalidated
-[DEBUG] Initial set of included nodes: 
-[DEBUG] Recompiling all sources: number of invalidated sources > 50.0% of all sources
-[DEBUG] compilation cycle 1
-[INFO] compiling 1 Scala source to /tmp/1/x/target/classes ...
-[DEBUG] Returning already retrieved and compiled bridge: /home/user/.sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.13-1.6.1-bin_2.13.8__55.0-1.6.1_20220117T214008.jar.
-[DEBUG] [zinc] Running cached compiler 5c0e2ec for Scala compiler version 2.13.8
-[DEBUG] [zinc] The Scala compiler is invoked with:
-	-target:11
-	-bootclasspath
-	
-	-classpath
-	/tmp/1/x/target/classes:/home/user/.m2/repository/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar:/home/user/.m2/repository/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar:/home/user/.m2/repository/org/jline/jline/3.21.0/jline-3.21.0.jar:/home/user/.m2/repository/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar
-[DEBUG] Scala compilation took 1.834386269 s
-[INFO] done compiling
-[INFO] compile in 2.6 s
+[DEBUG] > initialChanges = InitialChanges(Changes(added = Set(), removed = Set(), changed = Set(), unmodified = ...),Set(),Set(),API Changes: Set())
+[DEBUG] No changes
+[INFO] compile in 0.7 s
 [INFO] 
 [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ A ---
 [DEBUG] Using mirror maven-default-http-blocker (http://0.0.0.0/) for apache-snapshots (http://people.apache.org/repo/m2-snapshot-repository).
-[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=499995, ConflictMarker.markTime=113040, ConflictMarker.nodeCount=160, ConflictIdSorter.graphTime=123469, ConflictIdSorter.topsortTime=39339, ConflictIdSorter.conflictIdCount=43, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=841605, ConflictResolver.conflictItemCount=63, DefaultDependencyCollector.collectTime=78985831, DefaultDependencyCollector.transformTime=1646633}
+[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=269487, ConflictMarker.markTime=111715, ConflictMarker.nodeCount=160, ConflictIdSorter.graphTime=161126, ConflictIdSorter.topsortTime=35722, ConflictIdSorter.conflictIdCount=43, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=821047, ConflictResolver.conflictItemCount=63, DefaultDependencyCollector.collectTime=87372899, DefaultDependencyCollector.transformTime=1424546}
 [DEBUG] org.apache.maven.plugins:maven-compiler-plugin:jar:3.1
 [DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.9:compile
 [DEBUG]    org.apache.maven:maven-artifact:jar:2.0.9:compile
@@ -587,4 +559,3 @@
 [DEBUG] Output directory: /tmp/1/x/target/classes
 [DEBUG] CompilerReuseStrategy: reuseCreated
 [DEBUG] useIncrementalCompilation enabled
-[INFO] Nothing to compile - all classes are up to date

@slandelle
Copy link
Collaborator

@eed3si9n Could you please share some insights? I can reproduce with zinc 1.6.1 and 1.7.0-M2.

Is in a bug in zinc, or in the way we use zinc?

@eed3si9n
Copy link

@slandelle Sorry I don't really have a clear understanding of how that works. What I know is that to accommodate JDK 9 we wrote a program that moves rt.jar to a directory named after JDK vendor and version name, and then pass the rt.jar along to the compiler with -Dscala.ext.dirs flag. I thought that was to work around the limitation of Scala compiler at the time. I don't know if this hack is still needed or if other build tools using Zinc are replicating it to support JDK 9 and up.

I also have a vague recollection of faking any rt.jar as a DummyVirtualFile when I implemented file virtualization in Zinc 1.4. Otherwise, one machine's analysis state can't be transferred to another since we all have different rt.jar:
https://github.com/sbt/zinc/blob/d56686b5d69f9e05d5121509677ebeadb7584007/internal/zinc-core/src/main/scala/sbt/internal/inc/MappedVirtualFile.scala#L65-L67
so [DEBUG] Invalidating '/modules/java.base/java/lang/Object.class' because could not find class java.lang.Object on the classpath. is suspicious.

@slandelle
Copy link
Collaborator

slandelle commented May 13, 2022

@eed3si9n Thanks a lot for chiming in!

I'm trying to debug, but what's incredible is that the issue disappears when running mvnDebug instead of mvn?!

@slandelle
Copy link
Collaborator

The weird invalidation only happens during the first run following a full compile.

  • mvn clean compile
  • mvn compile -X // weird unexpected invalidation
  • mvn compile -X // no invalidation

Meaning the issue is probably with the analysis store when it's created for the first time.

@slandelle
Copy link
Collaborator

@eed3si9n I suspect this issue is similar to #502 which is a ClassLoader behavior change, most likely introduced in Jigsaw.

slandelle added a commit that referenced this issue Jun 2, 2022
Remove the FileConverter, it seems to break things.
@slandelle
Copy link
Collaborator

Please upgrade to 4.6.2

@akshaal
Copy link
Contributor Author

akshaal commented Jun 3, 2022

Thank you! It works fine now.

@akshaal
Copy link
Contributor Author

akshaal commented Jun 3, 2022

Maybe this change needs a manual flag or be applied conditionally when java 9 or higher is detected?
Unfortunately, 4.6.2 breaks incremental compilation in java 8. "clean compile" goes fine in 4.6.2, but a consequent invocation of "compile" fails in 4.6.2. Works ok in 4.6.1. I can't reproduce the new issue in an isolated toy project, but as soon as I can reproduced it in a smaller project, I will create a dedicated issue, meanwhile just a stacktrace:

[ERROR] ## Exception when compiling 33 sources to /home/user/workspace/project/stuff/target/classes
java.lang.RuntimeException: rt.jar (class sbt.internal.inc.DummyVirtualFile) is not supported
scala.sys.package$.error(package.scala:27)
sbt.internal.inc.Locate$.definesClass(Locate.scala:92)
sbt.internal.inc.Locate.definesClass(Locate.scala)
sbt_inc.SbtIncrementalCompiler$1.definesClass(SbtIncrementalCompiler.java:119)
sbt.internal.inc.Locate$.$anonfun$entry$1(Locate.scala:60)
scala.collection.Iterator$$anon$9.next(Iterator.scala:575)
scala.collection.IterableOnceOps.collectFirst(IterableOnce.scala:1079)
scala.collection.IterableOnceOps.collectFirst$(IterableOnce.scala:1071)
scala.collection.AbstractIterator.collectFirst(Iterator.scala:1288)
sbt.internal.inc.Locate$.$anonfun$entry$2(Locate.scala:67)
sbt.internal.inc.LookupImpl.lookupOnClasspath(LookupImpl.scala:51)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$3(IncrementalCommon.scala:764)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$3$adapted(IncrementalCommon.scala:754)
scala.collection.IterableOnceOps.exists(IterableOnce.scala:591)
scala.collection.IterableOnceOps.exists$(IterableOnce.scala:588)
scala.collection.AbstractIterable.exists(Iterable.scala:919)
sbt.internal.inc.IncrementalCommon$.isLibraryChanged$1(IncrementalCommon.scala:754)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$1(IncrementalCommon.scala:774)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$1$adapted(IncrementalCommon.scala:732)
scala.collection.parallel.AugmentedIterableIterator.filter2combiner(RemainsIterator.scala:136)
scala.collection.parallel.AugmentedIterableIterator.filter2combiner$(RemainsIterator.scala:133)
scala.collection.parallel.immutable.ParVector$ParVectorIterator.filter2combiner(ParVector.scala:72)
scala.collection.parallel.ParIterableLike$Filter.leaf(ParIterableLike.scala:1083)
scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:52)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
scala.collection.parallel.Task.tryLeaf(Tasks.scala:55)
scala.collection.parallel.Task.tryLeaf$(Tasks.scala:49)
scala.collection.parallel.ParIterableLike$Filter.tryLeaf(ParIterableLike.scala:1079)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal(Tasks.scala:159)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal$(Tasks.scala:156)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:303)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:149)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:148)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:303)
java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389)
java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
scala.collection.parallel.ForkJoinTasks$WrappedTask.sync(Tasks.scala:242)
scala.collection.parallel.ForkJoinTasks$WrappedTask.sync$(Tasks.scala:242)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:303)
scala.collection.parallel.ForkJoinTasks.executeAndWaitResult(Tasks.scala:286)
scala.collection.parallel.ForkJoinTasks.executeAndWaitResult$(Tasks.scala:279)
scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:59)
scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult(Tasks.scala:409)
scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult$(Tasks.scala:409)
scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:75)
scala.collection.parallel.ParIterableLike$ResultMapping.leaf(ParIterableLike.scala:932)
scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:52)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
scala.collection.parallel.Task.tryLeaf(Tasks.scala:55)
scala.collection.parallel.Task.tryLeaf$(Tasks.scala:49)
scala.collection.parallel.ParIterableLike$ResultMapping.tryLeaf(ParIterableLike.scala:927)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:152)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:148)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:303)
java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

@slandelle
Copy link
Collaborator

Sad. Most likely related to what happens in Zinc here: https://github.com/sbt/zinc/pull/982/files

Please chime in if you can create a reproducer.

@LuciferYang
Copy link
Contributor

reproducer

Maybe this change needs a manual flag or be applied conditionally when java 9 or higher is detected? Unfortunately, 4.6.2 breaks incremental compilation in java 8. "clean compile" goes fine in 4.6.2, but a consequent invocation of "compile" fails in 4.6.2. Works ok in 4.6.1. I can't reproduce the new issue in an isolated toy project, but as soon as I can reproduced it in a smaller project, I will create a dedicated issue, meanwhile just a stacktrace:

[ERROR] ## Exception when compiling 33 sources to /home/user/workspace/project/stuff/target/classes
java.lang.RuntimeException: rt.jar (class sbt.internal.inc.DummyVirtualFile) is not supported
scala.sys.package$.error(package.scala:27)
sbt.internal.inc.Locate$.definesClass(Locate.scala:92)
sbt.internal.inc.Locate.definesClass(Locate.scala)
sbt_inc.SbtIncrementalCompiler$1.definesClass(SbtIncrementalCompiler.java:119)
sbt.internal.inc.Locate$.$anonfun$entry$1(Locate.scala:60)
scala.collection.Iterator$$anon$9.next(Iterator.scala:575)
scala.collection.IterableOnceOps.collectFirst(IterableOnce.scala:1079)
scala.collection.IterableOnceOps.collectFirst$(IterableOnce.scala:1071)
scala.collection.AbstractIterator.collectFirst(Iterator.scala:1288)
sbt.internal.inc.Locate$.$anonfun$entry$2(Locate.scala:67)
sbt.internal.inc.LookupImpl.lookupOnClasspath(LookupImpl.scala:51)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$3(IncrementalCommon.scala:764)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$3$adapted(IncrementalCommon.scala:754)
scala.collection.IterableOnceOps.exists(IterableOnce.scala:591)
scala.collection.IterableOnceOps.exists$(IterableOnce.scala:588)
scala.collection.AbstractIterable.exists(Iterable.scala:919)
sbt.internal.inc.IncrementalCommon$.isLibraryChanged$1(IncrementalCommon.scala:754)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$1(IncrementalCommon.scala:774)
sbt.internal.inc.IncrementalCommon$.$anonfun$isLibraryModified$1$adapted(IncrementalCommon.scala:732)
scala.collection.parallel.AugmentedIterableIterator.filter2combiner(RemainsIterator.scala:136)
scala.collection.parallel.AugmentedIterableIterator.filter2combiner$(RemainsIterator.scala:133)
scala.collection.parallel.immutable.ParVector$ParVectorIterator.filter2combiner(ParVector.scala:72)
scala.collection.parallel.ParIterableLike$Filter.leaf(ParIterableLike.scala:1083)
scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:52)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
scala.collection.parallel.Task.tryLeaf(Tasks.scala:55)
scala.collection.parallel.Task.tryLeaf$(Tasks.scala:49)
scala.collection.parallel.ParIterableLike$Filter.tryLeaf(ParIterableLike.scala:1079)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal(Tasks.scala:159)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.internal$(Tasks.scala:156)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:303)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:149)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:148)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:303)
java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389)
java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
scala.collection.parallel.ForkJoinTasks$WrappedTask.sync(Tasks.scala:242)
scala.collection.parallel.ForkJoinTasks$WrappedTask.sync$(Tasks.scala:242)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:303)
scala.collection.parallel.ForkJoinTasks.executeAndWaitResult(Tasks.scala:286)
scala.collection.parallel.ForkJoinTasks.executeAndWaitResult$(Tasks.scala:279)
scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:59)
scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult(Tasks.scala:409)
scala.collection.parallel.ExecutionContextTasks.executeAndWaitResult$(Tasks.scala:409)
scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:75)
scala.collection.parallel.ParIterableLike$ResultMapping.leaf(ParIterableLike.scala:932)
scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:52)
scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
scala.collection.parallel.Task.tryLeaf(Tasks.scala:55)
scala.collection.parallel.Task.tryLeaf$(Tasks.scala:49)
scala.collection.parallel.ParIterableLike$ResultMapping.tryLeaf(ParIterableLike.scala:927)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:152)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:148)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:303)
java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Looks the same as #615

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants