You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Chris Heisterkamp (JIRA)" <ji...@apache.org> on 2018/01/06 02:02:00 UTC

[jira] [Created] (BEAM-3422) The jar files uploaded to maven do not work with Java 9

Chris Heisterkamp created BEAM-3422:
---------------------------------------

             Summary: The jar files uploaded to maven do not work with Java 9
                 Key: BEAM-3422
                 URL: https://issues.apache.org/jira/browse/BEAM-3422
             Project: Beam
          Issue Type: Bug
          Components: build-system
    Affects Versions: 2.2.0
         Environment: OSX Darwin 17.3.0
            Reporter: Chris Heisterkamp
            Assignee: Davor Bonaci


The apache beam jars uploaded to maven have invalid date modified times in the jar files and cannot be loaded by JDK 9 because of https://bugs.openjdk.java.net/browse/JDK-8184940.  I've submitted a new bug to http://bugreport.java.com asking that the fix be back ported to the next Java 9 release.

In the meantime, can you repackage the jars with valid modified times? And uploaded fixed jars to Maven?

To reproduce you just need to put one of the jars on the classpath for javac.  So far I've found the following jars on maven central are affected.
beam-runners-google-cloud-dataflow-java-2.2.0.jar
beam-sdks-common-runner-api-2.2.0.jar
beam-sdks-java-core-2.2.0.jar
beam-sdks-java-extensions-google-cloud-platform-core-2.2.0.jar
beam-sdks-java-extensions-protobuf-2.2.0.jar
beam-sdks-java-io-google-cloud-platform-2.2.0.jar

e.g.

```
> curl -O http://central.maven.org/maven2/org/apache/beam/beam-sdks-java-core/2.2.0/beam-sdks-java-core-2.2.0.jar

> javac -cp beam-sdks-java-core-2.2.0.jar HelloWorld.java
An exception has occurred in the compiler (9.0.1). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0
	at java.base/java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311)
	at java.base/java.time.temporal.ChronoField.checkValidValue(ChronoField.java:714)
	at java.base/java.time.LocalDate.of(LocalDate.java:269)
	at java.base/java.time.LocalDateTime.of(LocalDateTime.java:336)
	at jdk.zipfs/jdk.nio.zipfs.ZipUtils.dosToJavaTime(ZipUtils.java:109)
	at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem$Entry.cen(ZipFileSystem.java:1950)
	at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem$Entry.readCEN(ZipFileSystem.java:1937)
	at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.getEntry(ZipFileSystem.java:1324)
	at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.newInputStream(ZipFileSystem.java:550)
	at jdk.zipfs/jdk.nio.zipfs.JarFileSystem.isMultiReleaseJar(JarFileSystem.java:91)
	at jdk.zipfs/jdk.nio.zipfs.JarFileSystem.<init>(JarFileSystem.java:67)
	at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:134)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.<init>(JavacFileManager.java:517)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.getContainer(JavacFileManager.java:319)
	at jdk.compiler/com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:715)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.list(ClassFinder.java:722)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.scanUserPaths(ClassFinder.java:648)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:529)
	at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:293)
	at jdk.compiler/com.sun.tools.javac.code.Symtab.lambda$addRootPackageFor$7(Symtab.java:758)
	at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:633)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:354)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:529)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:285)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:300)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:570)
	at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:554)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1052)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:923)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:302)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:162)
	at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57)
	at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43)

> java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
```

Unpacking and re-creating the jar with JDK 8 fixes the problem on OSX

jar -xf beam-sdks-java-core-2.2.0.jar
jar -cf beam-sdks-java-core-2.2.0.jar .

You call also use the JarTime.java test from https://bugs.openjdk.java.net/browse/JDK-8184940 to look at the modified dates for the jar entries.









--
This message was sent by Atlassian JIRA
(v6.4.14#64029)