Chesnay Schepler created FLINK-9743: ---------------------------------------
Summary: PackagedProgram.extractContainedLibraries fails on Windows Key: FLINK-9743 URL: https://issues.apache.org/jira/browse/FLINK-9743 Project: Flink Issue Type: Bug Components: Client, Job-Submission Affects Versions: 1.4.2, 1.5.0, 1.6.0 Reporter: Chesnay Schepler Fix For: 1.5.2, 1.6.0, 1.4.3 Submitting a jar that contains other jars on Windows fails with an exception: {code} org.apache.flink.client.program.ProgramInvocationException: Unknown I/O error while extracting contained jar files. at org.apache.flink.client.program.PackagedProgram.extractContainedLibraries(PackagedProgram.java:752) at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:194) at org.apache.flink.client.cli.CliFrontend.buildProgram(CliFrontend.java:833) at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:201) at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1020) at org.apache.flink.client.cli.CliFrontend.lambda$main$9(CliFrontend.java:1096) at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30) at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1096) Caused by: org.apache.flink.client.program.ProgramInvocationException: An I/O error occurred while creating temporary file to extract nested library 'lib/antrunner.jar'. at org.apache.flink.client.program.PackagedProgram.extractContainedLibraries(PackagedProgram.java:708) ... 7 more Caused by: java.io.IOException: Unable to create temporary file, C:\Users\XXX\AppData\Local\Temp\1751416743_6922010711856647205lib\antrunner.jar at java.io.File$TempDirectory.generateFile(Unknown Source) at java.io.File.createTempFile(Unknown Source) at java.io.File.createTempFile(Unknown Source) at org.apache.flink.client.program.PackagedProgram.extractContainedLibraries(PackagedProgram.java:702) ... 7 more {code} {{PackagedProgram.extractContainedLibraries}} tries to replace all path separators using the platform-dependent {{File.separateChar}}, however the path separator for jars (and zips for that matter) is always {{/}}. {code} final JarEntry entry = containedJarFileEntries.get(i); String name = entry.getName(); name = name.replace(File.separatorChar, '_'); {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)