diff --git a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ThreadCoverageRecorder.kt b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ThreadCoverageRecorder.kt index 0cc892dd..21e26527 100644 --- a/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ThreadCoverageRecorder.kt +++ b/test2code/src/main/kotlin/com/epam/drill/agent/test2code/coverage/ThreadCoverageRecorder.kt @@ -25,6 +25,7 @@ class ThreadCoverageRecorder( private val execData: ThreadLocal = ThreadLocal() override fun startRecording(sessionId: String?, testId: String?) { + stopRecording(context.get()?.sessionId, context.get()?.testId) val ctx = ContextKey(sessionId, testId) context.set(ctx) execData.set(execDataPool.getOrPut( @@ -35,6 +36,7 @@ class ThreadCoverageRecorder( } override fun stopRecording(sessionId: String?, testId: String?) { + if (execData.get() == null) return execDataPool.release(ContextKey(sessionId, testId), execData.get() ?: ExecData()) execData.remove() context.remove()