Skip to content

Minion exited abnormally with java records and jakarta.validation.constraints.NotNull #1435

@ilopezv

Description

@ilopezv

Running pitest with the following config:

  • pitest-maven:1.21.0
  • pitest-junit5-plugin: 1.2.3
  • junit-jupiter: 1.21.3
  • junit-platform-engine:1.12.2
  • java-25
  • maven 3.9.11
  • Spring Boot 3.5.6
  • without arcmutate

Pitest features:

  • -frecord

Produces mutation error analizing java records with properties tagged with jakarta @NotNull:

Please copy and paste the information and the complete stacktrace below when reporting an issue
VM : OpenJDK 64-Bit Server VM
Vendor : BellSoft
Version : 25+37-LTS
Uptime : 42256
Input ->
 1 : --add-opens=java.base/java.lang=ALL-UNNAMED
 2 : --enable-native-access=ALL-UNNAMED
 3 : --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
 4 : --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
 5 : --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
 6 : --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
 7 : --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
 8 : --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
 9 : --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
 10 : --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
 11 : --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
 12 : --add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
 13 : --sun-misc-unsafe-memory-access=allow
 14 : --enable-native-access=ALL-UNNAMED
 15 : -Dclassworlds.conf=C:/santalucia/apache-maven-3.9.11/bin/m2.conf
 16 : -Dmaven.home=C:/santalucia/apache-maven-3.9.11
 17 : -Dlibrary.jansi.path=C:/santalucia/apache-maven-3.9.11/lib/jansi-native
 18 : -Dmaven.multiModuleProjectDirectory=C:/santalucia/workspace-sb3/ams-3
BootClassPathSupported : false

        at org.pitest.util.Unchecked.translateCheckedException(Unchecked.java:20)
        at org.pitest.util.SafeDataInputStream.readByte(SafeDataInputStream.java:78)
        at org.pitest.util.SocketReadingCallable.receiveResults(SocketReadingCallable.java:57)
        at org.pitest.util.SocketReadingCallable.call(SocketReadingCallable.java:34)
        at org.pitest.util.SocketReadingCallable.call(SocketReadingCallable.java:11)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
        ... 1 more
Caused by: java.net.SocketException: Connection reset
        at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:316)
        at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:354)
        at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:798)
        at java.base/java.net.Socket$SocketInputStream.implRead(Socket.java:974)
        at java.base/java.net.Socket$SocketInputStream.read(Socket.java:964)
        at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:289)
        at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:308)
        at java.base/java.io.DataInputStream.readUnsignedByte(DataInputStream.java:300)
        at java.base/java.io.DataInputStream.readByte(DataInputStream.java:280)
        at org.pitest.util.SafeDataInputStream.readByte(SafeDataInputStream.java:76)
        ... 5 more
18:52:57 PIT >> WARNING : Minion exited abnormally due to RUN_ERROR

example code that fails because of @NotNull (same class works well without @NotNull)

package com.company.arq.testcontainers.properties.reload;

import jakarta.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.bind.DefaultValue;
import org.springframework.validation.annotation.Validated;

@Validated
@ConfigurationProperties(prefix = "embedded.azurite")
public record AzuriteProperties(
    @NotNull @DefaultValue("127.0.0.1") String host,
    @NotNull @DefaultValue("10000") Integer blobStoragePort,

and pitest produces a jdk error log that seems related to java.lang.NoSuchMethodError errors

Event: 2.168 Thread 0x000001ad03b79110 Exception <a 'java/lang/IncompatibleClassChangeError'{0x0000000620e3a9f8}: Found class java.lang.Object, but interface was expected> (0x0000000620e3a9f8) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 871]
Event: 2.209 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x00000006202ade00}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x00000006202ade00) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.210 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x00000006202b6fa8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x00000006202b6fa8) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.221 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x00000006203e72c8}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, int, java.lang.Object)'> (0x00000006203e72c8) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.221 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x00000006203f78e8}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000006203f78e8) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.222 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x000000061fc0a3f0}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecialIFC(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000061fc0a3f0) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.292 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x00000006200c29a8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000006200c29a8) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.359 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x000000061fcdef28}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000061fcdef28) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.361 Thread 0x000001ad03b79110 Exception <a 'java/lang/NoSuchMethodError'{0x000000061fd05308}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000061fd05308) 
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 804]
Event: 2.414 Thread 0x000001ad2dde3d70 Exception <a 'java/lang/NoSuchMethodError'{0x0000000602810948}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, int)'> (0x0000000602810948) 

hs_err_pid3012.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions