Description
Description
When code contains java.net.http.HttpClient.Version
or java.net.http.HttpClient.Redirect
UTbot fails with exception.
To Reproduce
- Generate test for following code:
import java.net.http.HttpClient;
import static java.net.http.HttpClient.newBuilder;
public class HttpVersionBug {
void requestJavaSite() {
HttpClient client = newBuilder()
.version(HttpClient.Version.HTTP_2)
.build();
}
}
Expected behavior
Tests are generated without errors.
Actual behavior
One of generated tests contains following code:
public void testRequestJavaSite_errors() {
// Couldn't generate some tests. List of errors:
//
// 1 occurrences of:
/* Unable to make field private static final java.net.http.HttpClient$Version[] java.net.http.HttpClient$Version.$VALUES accessible:
module java.net.http does not "opens java.net.http" to unnamed module @708a09f2 */
}
idea.log has following stacktrace
Test generation failed on stmt $r1 = , symbolic stack trace:
<org.test.org.test.HttpVersionBug: void requestJavaSite()>
java.lang.reflect.InaccessibleObjectException: Unable to make field private static final java.net.http.HttpClient$Version[] java.net.http.HttpClient$Version.$VALUES accessible: module java.net.http does not "opens java.net.http" to unnamed module @708a09f2
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340) ~[?:?]
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280) ~[?:?]
at java.lang.reflect.Field.checkCanSetAccessible(Field.java:176) ~[?:?]
at java.lang.reflect.Field.setAccessible(Field.java:170) ~[?:?]
at org.utbot.engine.util.statics.concrete.EnumConcreteUtilsKt.associateEnumSootFieldsWithConcreteValues(EnumConcreteUtils.kt:265) ~[?:?]
at org.utbot.engine.Traverser.makeConcreteUpdatesForEnum(Traverser.kt:541) ~[?:?]
at org.utbot.engine.Traverser.makeConcreteUpdatesForEnumsWithStmt(Traverser.kt:583) ~[?:?]
at org.utbot.engine.Traverser.processStaticFieldConcretely(Traverser.kt:502) ~[?:?]
at org.utbot.engine.Traverser.processStaticInitializer(Traverser.kt:404) ~[?:?]
at org.utbot.engine.Traverser.processStaticInitializerIfRequired(Traverser.kt:358) ~[?:?]
at org.utbot.engine.Traverser.doPreparatoryWorkIfRequired(Traverser.kt:331) ~[?:?]
at org.utbot.engine.Traverser.traverseStmt(Traverser.kt:295) ~[?:?]
at org.utbot.engine.Traverser.traverse(Traverser.kt:281) ~[?:?]
at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invokeSuspend(UtBotSymbolicEngine.kt:352) ~[?:?]
at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invoke(UtBotSymbolicEngine.kt) ~[?:?]
at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invoke(UtBotSymbolicEngine.kt) ~[?:?]
at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:61) ~[?:?]
at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:230) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:120) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__EmittersKt$onCompletion$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:114) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__CollectKt.emitAll(Collect.kt:109) ~[?:?]
at kotlinx.coroutines.flow.FlowKt.emitAll(Unknown Source) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__MergeKt$flattenConcat$1$1.emit(Merge.kt:80) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__MergeKt$flattenConcat$1$1.emit(Merge.kt:80) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:114) ~[?:?]
at kotlinx.coroutines.flow.FlowKt__BuildersKt$flowOf$$inlined$unsafeFlow$1$1.invokeSuspend(SafeCollector.common.kt) ~[?:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[?:?]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[?:?]
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) ~[?:?]
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) ~[?:?]
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) ~[?:?]
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[?:?]
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) ~[?:?]
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[?:?]
at org.utbot.common.ConcurrencyKt.runBlockingWithCancellationPredicate(Concurrency.kt:38) ~[?:?]
at org.utbot.framework.plugin.api.TestCaseGenerator$generate$3.invoke(TestCaseGenerator.kt:149) ~[?:?]
at org.utbot.framework.plugin.api.TestCaseGenerator$generate$3.invoke(TestCaseGenerator.kt:148) ~[?:?]
at org.utbot.common.ConcurrencyKt.runIgnoringCancellationException(Concurrency.kt:47) ~[?:?]
at org.utbot.framework.plugin.api.TestCaseGenerator.generate(TestCaseGenerator.kt:148) ~[?:?]
at org.utbot.intellij.plugin.generator.UtTestsDialogProcessor$createTests$2$1.run(UtTestsDialogProcessor.kt:222) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:442) ~[?:?]
at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$5(CoreProgressManager.java:493) ~[?:?]
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:244) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607) ~[?:?]
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) ~[?:?]
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176) ~[?:?]
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:244) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) [?:?]
at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Metadata
Metadata
Assignees
Labels
Type
Projects
Status