You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Matthew Ernst (Jira)" <ji...@apache.org> on 2024/03/12 23:22:00 UTC

[jira] [Created] (FLINK-34658) Scala API unusable on Flink 1.18.1/Java 17 Docker image

Matthew Ernst created FLINK-34658:
-------------------------------------

             Summary: Scala API unusable on Flink 1.18.1/Java 17 Docker image
                 Key: FLINK-34658
                 URL: https://issues.apache.org/jira/browse/FLINK-34658
             Project: Flink
          Issue Type: Bug
          Components: API / Scala
    Affects Versions: 1.18.1, 1.18.0
         Environment: This bug has been reproduced under macOS (Intel x64) and Linux (AMD 64) on a Flink cluster running in session mode.
            Reporter: Matthew Ernst


The Scala API should still work in Flink 1.18. The official Docker image for Flink 1.18.1 on Java 17 ("flink:1.18.1-scala_2.12-java17") causes jobs using the Scala API to immediately throw a ReflectiveOperationException. Jobs using the Scala API still work correctly on the Java 11 image ("flink:1.18.1-scala_2.12-java11").

The problem happens because the flink-scala JAR file included in the image ("flink-scala_2.12-1.18.1.jar") has been built with an old Scala compiler that has a [compatibility bug with Java 17|https://github.com/scala/bug/issues/12419]. Rebuilding the flink-scala JAR file with the Scala compiler set to 2.12.15 or later fixes the bug. At my day job I cannot use Java 11 for a particular Flink job due to dependency on a Java library that uses [Java records|https://openjdk.org/jeps/395] (introduced in Java 16).

I have created a github repository with an example application and a longer description of the bug and how to fix it with a newer Scala compiler version: https://github.com/mattbernst/scala-java17-flink



--
This message was sent by Atlassian Jira
(v8.20.10#820010)