Skip to content

Could not initialize class S***L*** from sandbox in instrumented process #2466

Open
@alisevych

Description

@alisevych

Description

Instrumented process errors:
Could not initialize class S***L*** from sandbox

To Reproduce

  1. Install UnitTestBot plugin built from main in IntelliJ IDEA
  2. Open sm***t project
  3. Generate tests for SL class

Expected behavior

Class should be instantiated or correctly disabled due to sandbox tests should be generated.

Actual behavior

Error tests with failures from instrumented process are generated.
There is one test Disabled due to sandbox - but without class instantiation.
There are NoClassDefFoundErrors in utbot-engine-current.log

Screenshots, logs

    @Test
    @Disabled(value = "Disabled due to sandbox")
    public void test***1() {
        MockedStatic mockedStatic = null;
        try {
            mockedStatic = mockStatic(LoggerFactory.class);
            (mockedStatic.when(() -> LoggerFactory.getLogger(any(Class.class)))).thenReturn(((Logger) null));

            /* This test fails because method [***.S***L***.***] produces [java.security.AccessControlException: access denied ("java.util.PropertyPermission" "APP_HOME" "read")] */
        } finally {
            mockedStatic.close();
        }
    }
    ///endregion

    ///region Errors report for ***

    public void test***_errors() {
        // Couldn't generate some tests. List of errors:
        // 
        // 1 occurrences of:
        // Concrete execution failed

    }
    ///endregion
Caused by: com.jetbrains.rd.util.reactive.RdFault: InvocationPhase, reason: org.utbot.instrumentation.instrumentation.execution.phases.ExecutionPhaseError: InvocationPhase
	at org.utbot.instrumentation.instrumentation.execution.phases.InvocationPhase.wrapError(InvocationPhase.kt:22)
	at org.utbot.instrumentation.instrumentation.execution.phases.ExecutionPhaseKt.start(ExecutionPhase.kt:30)
	at org.utbot.instrumentation.instrumentation.execution.phases.PhasesController.executePhaseInTimeout(PhasesController.kt:56)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation$invoke$1$1.invoke(SimpleUtExecutionInstrumentation.kt:63)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation$invoke$1$1.invoke(SimpleUtExecutionInstrumentation.kt:55)
	at org.utbot.instrumentation.instrumentation.execution.UtExecutionInstrumentation$invoke$1.invoke(UtExecutionInstrumentation.kt:46)
	at org.utbot.instrumentation.instrumentation.execution.UtExecutionInstrumentation$invoke$1.invoke(UtExecutionInstrumentation.kt:45)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation.invoke(SimpleUtExecutionInstrumentation.kt:55)
	at org.utbot.instrumentation.instrumentation.execution.UtExecutionInstrumentation$DefaultImpls.invoke(UtExecutionInstrumentation.kt:45)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation.invoke(SimpleUtExecutionInstrumentation.kt:22)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation.invoke(SimpleUtExecutionInstrumentation.kt:22)
	at org.utbot.instrumentation.process.InstrumentedProcessMainKt$setup$2.invoke(InstrumentedProcessMain.kt:132)
	at org.utbot.instrumentation.process.InstrumentedProcessMainKt$setup$2.invoke(InstrumentedProcessMain.kt:129)
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1$2$1.invoke(ClientProcessUtil.kt:115)
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:88)
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1.invoke(ClientProcessUtil.kt:114)
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
	at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:362)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56)
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56)
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54)
	at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class ***.S***L***
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.utbot.instrumentation.instrumentation.InvokeInstrumentation$invoke$2$result$1.invoke-IoAF18A(InvokeInstrumentation.kt:61)
	at org.utbot.instrumentation.instrumentation.InvokeInstrumentation$invoke$2$result$1.invoke(InvokeInstrumentation.kt:59)
	at org.utbot.instrumentation.process.SecurityKt$runSandbox$1$1.invoke(Security.kt:40)
	at org.utbot.instrumentation.process.SecurityKt$sandbox$1.invoke(Security.kt:62)
	at org.utbot.instrumentation.process.SecurityKt$sandbox$2.invoke(Security.kt:78)
	at org.utbot.instrumentation.process.SecurityKt$sandbox$3.invoke(Security.kt:83)
	at org.utbot.instrumentation.process.SecurityKt$sandbox$4.run(Security.kt:89)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:89)
	at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:83)
	at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:78)
	at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:62)
	at org.utbot.instrumentation.process.SecurityKt.runSandbox(Security.kt:40)
	at org.utbot.instrumentation.process.SecurityKt.runSandbox$default(Security.kt:38)
	at org.utbot.instrumentation.instrumentation.InvokeInstrumentation.invoke-BWLJW6A(InvokeInstrumentation.kt:59)
	at org.utbot.instrumentation.instrumentation.InvokeInstrumentation.invoke(InvokeInstrumentation.kt:21)
	at org.utbot.instrumentation.instrumentation.Instrumentation$DefaultImpls.invoke$default(Instrumentation.kt:21)
	at org.utbot.instrumentation.instrumentation.execution.phases.InvocationPhase.invoke-0E7RQCE(InvocationPhase.kt:31)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation$invoke$1$1$concreteResult$1.invoke-IoAF18A(SimpleUtExecutionInstrumentation.kt:64)
	at org.utbot.instrumentation.instrumentation.execution.SimpleUtExecutionInstrumentation$invoke$1$1$concreteResult$1.invoke(SimpleUtExecutionInstrumentation.kt:63)
	at org.utbot.instrumentation.instrumentation.execution.phases.PhasesController$executePhaseInTimeout$1$result$1.invoke(PhasesController.kt:62)
	at org.utbot.common.ThreadBasedExecutor$invokeWithTimeout$1.invoke(ThreadUtil.kt:44)
	at org.utbot.common.ThreadBasedExecutor$ensureThreadIsAlive$1.invoke(ThreadUtil.kt:91)
	at org.utbot.common.ThreadBasedExecutor$ensureThreadIsAlive$1.invoke(ThreadUtil.kt:87)
	at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)

	at com.jetbrains.rd.framework.RdTaskResult$Companion.read(TaskInterfaces.kt:30) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.CallSiteWiredRdTask.onWireReceived(RdTask.kt:106) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1.queue$execute(RdTask.kt:280) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1.access$queue$execute(RdTask.kt:269) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1$queue$1.invokeSuspend(RdTask.kt:289) ~[rd-framework-2023.1.2.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.8.10.jar:1.8.10-release-430(1.8.10)]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	... 28 more

Environment

IntelliJ IDEA version - 2023.1 Community
Project - Maven
JDK - 1.8

Additional context

Reproducing with regular Java flow using -IC- plugin without Spring support.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions