pojo-tester icon indicating copy to clipboard operation
pojo-tester copied to clipboard

JDK 13. Bug when testing any pojo

Open shadow1305 opened this issue 5 years ago • 8 comments

pl.pojo.tester.internal.GetOrSetValueException: Unable to get or set value for field 'modifiers' in class 'class java.lang.reflect.Field'. Cause message: modifiers

at pl.pojo.tester.internal.utils.FieldUtils.makeModifiable(FieldUtils.java:96)
at pl.pojo.tester.internal.utils.FieldUtils.getValue(FieldUtils.java:53)
at pl.pojo.tester.internal.assertion.getter.GetterAssertions.willGetValueFromField(GetterAssertions.java:27)
at pl.pojo.tester.internal.tester.GetterTester.testGetter(GetterTester.java:40)
at pl.pojo.tester.internal.tester.GetterTester.lambda$test$0(GetterTester.java:33)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
at pl.pojo.tester.internal.tester.GetterTester.test(GetterTester.java:33)
at pl.pojo.tester.api.assertion.SingleClassAssertion.lambda$runAssertions$0(SingleClassAssertion.java:28)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at pl.pojo.tester.api.assertion.SingleClassAssertion.runAssertions(SingleClassAssertion.java:28)
at pl.pojo.tester.api.assertion.AbstractAssertion.areWellImplemented(AbstractAssertion.java:129)
at xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.GameStatisticTest.test(GameStatisticTest.java:16)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:675)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:132)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:124)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:74)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:202)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:198)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

Caused by: java.lang.NoSuchFieldException: modifiers at java.base/java.lang.Class.getDeclaredField(Class.java:2412) at pl.pojo.tester.internal.utils.FieldUtils.makeModifiable(FieldUtils.java:90) ... 74 more

shadow1305 avatar Dec 10 '19 13:12 shadow1305

Any answers of this issue?

aveTakashi avatar Feb 05 '20 12:02 aveTakashi

I made it work with java 12/13 on a fork. I will open a PR asap.

Here is the commit corresponding to the migration from java 8 to 12 : https://github.com/sta-szek/pojo-tester/commit/4f68d6eabd3f30a7fbf5504367c83d62cc0e4a68

The fork uses maven. We just need to upgrade the same libraries in the gradle file in the original project and it should work fine!

frecco75 avatar Feb 06 '20 23:02 frecco75

@sta-szek This issue now applies to Java 14 as well, which is set to go GA later this month. Could we get an update to pojo tester to accommodate newer Java releases?

jbrinegar avatar Mar 03 '20 00:03 jbrinegar

This is the PR for Java 13 support https://github.com/sta-szek/pojo-tester/pull/241

frecco75 avatar Mar 23 '20 14:03 frecco75

how to fix this error?

ankisinha3005 avatar Jun 10 '21 08:06 ankisinha3005

@frecco75 Would you mind posting your version of the library into a package repo, since it looks like the original maintainer is not taking your pull?

kontaras avatar Jul 15 '21 19:07 kontaras

@frecco75 @kontaras @shadow1305 I got the same error with jdk 18. Are you going to provide a fix for that version?

olekspolishchuk avatar Jul 15 '22 07:07 olekspolishchuk

@frecco75 @kontaras @shadow1305 I got the same error with jdk 17 Please provide solution for this issue

sekhar43 avatar Jul 20 '23 08:07 sekhar43