Minion exited abnormally with java records and jakarta.validation.constraints.NotNull
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)
Hi @ilopezv,
I’m also learning this library myself, and this issue caught my interest. so I've tried to match your environment as closely as possible, but that error does not seem to occur on my side.
Could you please share the exact test code you used that triggers this issue?(XxxTest.java for AzuriteProperties.java)
problems seem to be related with java 25 as I can see in hs_err_pid3012.log: NoSuchMethodError // java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial
java Exception <a 'java/lang/NoSuchMethodError'{0x0000000602810948}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, int)'> (0x0000000602810948)