diff --git a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java index 586a0a3b..02823238 100644 --- a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java +++ b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java @@ -3,6 +3,7 @@ package org.ssssssss.magicapi.task.web; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.ssssssss.magicapi.core.config.MagicConfiguration; +import org.ssssssss.magicapi.core.config.WebSocketSessionManager; import org.ssssssss.magicapi.core.logging.MagicLoggerContext; import org.ssssssss.magicapi.core.model.DebugRequest; import org.ssssssss.magicapi.core.model.JsonBean; @@ -28,11 +29,14 @@ public class MagicTaskController extends MagicController implements MagicExcepti String script = entity.getScript(); DebugRequest debugRequest = DebugRequest.create(request); MagicLoggerContext.SESSION.set(debugRequest.getRequestedClientId()); + String sessionAndScriptId = debugRequest.getRequestedClientId() + debugRequest.getRequestedScriptId(); try { MagicScriptDebugContext magicScriptContext = debugRequest.createMagicScriptContext(configuration.getDebugTimeout()); + WebSocketSessionManager.addMagicScriptContext(sessionAndScriptId, magicScriptContext); magicScriptContext.setScriptName(MagicConfiguration.getMagicResourceService().getScriptName(entity)); return new JsonBean<>(ScriptManager.executeScript(script, magicScriptContext)); } finally { + WebSocketSessionManager.removeMagicScriptContext(sessionAndScriptId); MagicLoggerContext.SESSION.remove(); } }