diff --git a/libraries/pom.xml b/libraries/pom.xml
index 10f79950ab7..28ba5cab2d3 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -350,6 +350,18 @@
${env.JDK_9}
+
+ jdk_17_0_new
+
+
+ env.JDK_17_0
+
+ true
+
+
+ ${env.JDK_17_0}
+
+
sign-artifacts
diff --git a/libraries/tools/kotlin-maven-plugin-test/pom.xml b/libraries/tools/kotlin-maven-plugin-test/pom.xml
index d03dd90f889..e642d60ccee 100644
--- a/libraries/tools/kotlin-maven-plugin-test/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/pom.xml
@@ -173,6 +173,18 @@
run
+
+ integration-test-java17
+
+ src/it/java17
+ ${project.build.directory}/it/java17
+ ${jdk_17_0}
+
+
+ install
+ run
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/pom.xml
new file mode 100644
index 00000000000..2342147c1de
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+ 4.0.0
+
+ org.jetbrains.kotlin
+ test-fileSnapshotMap-overflow-app
+ 1.0-SNAPSHOT
+
+
+ UTF-8
+ true
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ add-many-source-files-plugin
+ 0.0.1-SNAPSHOT
+
+
+
+ add-many-source-files
+
+
+
+
+
+
+ kotlin-maven-plugin
+ org.jetbrains.kotlin
+ ${kotlin.version}
+
+
+ compile
+
+ compile
+
+
+
+ src/main/kotlin
+
+
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/src/main/kotlin/test.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/src/main/kotlin/test.kt
new file mode 100755
index 00000000000..b6b1387eb7f
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/app/src/main/kotlin/test.kt
@@ -0,0 +1,3 @@
+fun foo(){
+ println("1")
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/pom.xml
new file mode 100644
index 00000000000..3cb15d60f47
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+ org.jetbrains.kotlin
+ add-many-source-files-plugin
+ maven-plugin
+ 0.0.1-SNAPSHOT
+
+ add-many-source-files-plugin Maven Mojo
+ http://maven.apache.org
+
+
+ 1.8
+ 1.8
+
+
+
+
+ org.apache.maven
+ maven-plugin-api
+ ${maven.version}
+
+
+ org.apache.maven.plugin-tools
+ maven-plugin-annotations
+ 3.7.0
+ provided
+
+
+ org.apache.maven
+ maven-core
+ ${maven.version}
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/src/main/java/AddManySourceFilesMojo.java b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/src/main/java/AddManySourceFilesMojo.java
new file mode 100644
index 00000000000..79fe92f7035
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/myPlugin/src/main/java/AddManySourceFilesMojo.java
@@ -0,0 +1,40 @@
+import org.apache.maven.model.Dependency;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.util.List;
+
+@Mojo(name = "add-many-source-files", defaultPhase = LifecyclePhase.COMPILE)
+public class AddManySourceFilesMojo
+ extends AbstractMojo {
+ @Parameter(defaultValue = "${project}", required = true, readonly = true)
+ public MavenProject project;
+
+ public void execute()
+ throws MojoExecutionException {
+ File srcFolder = new File(project.getBasedir().getAbsolutePath(), "src/main/kotlin");
+ if (!srcFolder.exists()) {
+ throw new MojoExecutionException("Src dir is not present");
+ }
+ int numberOfFiles = 500;
+ for (Integer count = 0; count < numberOfFiles; count++) {
+ File generatedKtFile = new File(srcFolder, "SmallFileWithBigNameXXXXXXXXXXXXXXXXXXXXXXXXXX" + count.toString() + ".kt");
+ try {
+ String str = "fun foo" + count.toString() + "(){\n" +
+ " println(\"2\")\n" +
+ "}";
+ BufferedWriter writer = new BufferedWriter(new FileWriter(generatedKtFile));
+ writer.write(str);
+ writer.close();
+ } catch (IOException e) {
+ throw new MojoExecutionException(e.getMessage());
+ }
+ }
+ }
+}
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/pom.xml
new file mode 100644
index 00000000000..7ac68e0587e
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+
+ org.jetbrains.kotlin
+ test-fileSnapshotMap-overflow
+ 1.0-SNAPSHOT
+
+ myPlugin
+ app
+
+ pom
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/verify.bsh
new file mode 100644
index 00000000000..fa3b82934c1
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java17/test-fileSnapshotMap-overflow/verify.bsh
@@ -0,0 +1,6 @@
+import java.io.*;
+
+File file = new File(basedir, "app/target/test-fileSnapshotMap-overflow-app-1.0-SNAPSHOT.jar");
+if (!file.exists() || !file.isFile()) {
+ throw new FileNotFoundException("Could not find generated JAR: " + file);
+}