Unsupported class file major version 61, trying to migrate from Java 11 to Java 17

Viewed 78

I try to migrate a Java 11 project to Java 17. With Java 11 environment, the project runs without any issues. But in Java 17 I get the following error:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.791 s <<< FAILURE! - in userservice.controller.UserControllerTest
userservice.controller.UserControllerTest  Time elapsed: 1.791 s  <<< ERROR!
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
Caused by: java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.RuntimeException: Failed to initialize Arc
Caused by: java.lang.ExceptionInInitializerError
Caused by: org.hibernate.bytecode.enhance.spi.EnhancementException: Failed to enhance class userservice.persistence.entities.UserEntity
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61

My UserEntity class looks like this:

package userservice.persistence.entities;

import javax.persistence.*;
import java.util.Objects;

@Entity(name="user")
@Table(name="user")
@NamedQuery(name = "User.findAll", query = "SELECT u FROM user u ORDER BY u.email")
@NamedQuery(name = "User.findByEmail", query = "SELECT u FROM user u WHERE u.email = :email")
public class UserEntity {

    public static final String QUERY_FIND_ALL = "User.findAll";
    public static final String QUERY_FIND_BY_EMAIL = "User.findByEmail";

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(unique = true)
    private String email;

    public UserEntity() {}

    // basic setter, getter for email and id...
    // and basic equals, toString and hashCode methods...

}

What am I missing..would be glad if someone could help me.

Edit: Here are the Dependencies I use in the quarkus project:

<dependencies>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-kubernetes</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-container-image-docker</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.rest-assured</groupId>
      <artifactId>rest-assured</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-jackson</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-hibernate-orm</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-test-h2</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-jdbc-mysql</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-liquibase</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-hibernate-validator</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-oidc</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5-mockito</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.liquibase</groupId>
      <artifactId>liquibase-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-test-security</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>own.repo.costcenter</groupId>
      <artifactId>common-lib</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-jdbc-postgresql</artifactId>
    </dependency>
  </dependencies>
1 Answers

Well my problem was that I forget to update my quarkus dependency. Hope this will help someone in the future :)

Related