Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8296847

Latest OpenJdk 11 build not compatible with Gradle languageVersion.set

    XMLWordPrintable

Details

    • x86_64
    • linux

    Description

      A DESCRIPTION OF THE PROBLEM :
      When using the 'java-library' plugin for Gradle, and defining the language version with 'languageVersion.set(JavaLanguageVersion.of(11))' and performing a build, it fails with the error 'Caused by: java.lang.IllegalArgumentException: error: release version 11 not supported'


      REGRESSION : Last worked in version 11.0.17

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Create a basic grade project with the following build.gradle configuration included (I used Gradle 7.4):

      plugins {
          id 'java'
      }

      group 'org.example'
      version '1.0-SNAPSHOT'

      repositories {
          mavenCentral()
      }



      apply plugin: 'java-library'

      java {
          toolchain {
              languageVersion.set(JavaLanguageVersion.of(11))
          }
      }

      dependencies {
          testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
          testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
      }

      test {
          useJUnitPlatform()
      }

      jar {
          manifest {
              attributes(
                      'Main-Class': 'org.example.Main'
              )
          }
      }

      2. Run 'gradle wrapper' in a terminal with the working directory of your project to construct a gradle wrapper

      3. Define a simple Main class, e.g:

      package org.example;

      public class Main {
          public static void main(String[] args) {
              System.out.println("Hello world!");
          }
      }

      4. Create a Dockerfile such as:

      FROM alpine:3.16.2 as build

      RUN apk add --no-cache curl openjdk11-jre bash gcompat \
          && rm -rf /var/cache/apk/*

      ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk

      ENV APP_DIR=/open-jdk-bug
      ENV GRADLE_USER_HOME $APP_DIR/cache

      RUN addgroup -S appgroup && adduser -S appuser -G appgroup \
          && mkdir $APP_DIR \
          && chown -R appuser:appgroup $APP_DIR
      USER appuser

      WORKDIR $APP_DIR

      COPY ./gradle $APP_DIR/gradle
      COPY ./gradlew ./settings.gradle $APP_DIR/
      RUN ./gradlew --version

      COPY ./build.gradle $APP_DIR
      COPY src $APP_DIR/src
      RUN ./gradlew build --refresh-dependencies --no-daemon || return 0

      RUN ./gradlew build --no-daemon --stacktrace

      CMD ["java, -jar, $APP_DIR/build/OpenJdkBug-1.0-SNAPSHOT.jar"]

      5. Run 'docker build .'


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The docker image should build successfully
      ACTUAL -
      Exception is thrown caused by:

      java.lang.IllegalArgumentException: error: release version 11 not supported


      ---------- BEGIN SOURCE ----------
      See Steps to Reproduce.
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Use:

      java {
          sourceCompatibility = "11"
          targetCompatibility = "11"
      }

      FREQUENCY : always


      Attachments

        Activity

          People

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: