From e8691d706499446a91f3e6f1ff1f983bd0165d06 Mon Sep 17 00:00:00 2001 From: Maher Khalil Date: Thu, 26 Feb 2026 16:15:48 +0100 Subject: [PATCH] fix: adding check if the tool is already added --- src/prerna/engine/impl/model/Room.java | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/prerna/engine/impl/model/Room.java b/src/prerna/engine/impl/model/Room.java index d87acca9eb..79c8112fb9 100644 --- a/src/prerna/engine/impl/model/Room.java +++ b/src/prerna/engine/impl/model/Room.java @@ -59,7 +59,6 @@ import prerna.auth.utils.SecurityProjectUtils; import prerna.cluster.util.ClusterUtil; import prerna.engine.api.IEngine; -import prerna.engine.api.IEngine.CATALOG_TYPE; import prerna.engine.api.IModelEngine; import prerna.engine.impl.model.inferencetracking.ModelInferenceLogsUtils; import prerna.engine.impl.model.message.AbstractMessage; @@ -587,43 +586,45 @@ public List> getAllToolsJsonForRoom() { List> aggregated = new ArrayList<>(); Map o = getOptionsMap(); + // make sure the same toolbox is not accidentally added more than once + Set ensureUnique = new HashSet<>(); + if (o.containsKey("mcp")) { try { - @SuppressWarnings("unchecked") List> mapMapList = (List>) o.get("mcp"); for (Map mcpMap : mapMapList) { - if (mcpMap.containsKey("type") && mcpMap.containsKey("id")) { - String type = (String) mcpMap.get("type"); + if (mcpMap.containsKey("id")) { String id = (String) mcpMap.get("id"); - CATALOG_TYPE catalogType = CATALOG_TYPE.valueOf(type); - if (catalogType != null) { + if (!ensureUnique.contains(id)) { aggregated.addAll(getToolJson(id)); + ensureUnique.add(id); } } else { throw new IllegalArgumentException("Tool map must contain both type and id"); } } } catch (Exception e) { - classLogger.error(Constants.STACKTRACE, e); + classLogger.error("Unable to add tool map from room mcp", e); } } if (o.containsKey("workspace")) { try { - @SuppressWarnings("unchecked") Map workspace = (Map) o.get("workspace"); if (workspace != null && workspace.containsKey("workspace_id")) { String workspaceId = (String) workspace.get("workspace_id"); List> tools = ModelInferenceLogsUtils.getWorkspaceResourcesByType(workspaceId, null); - for (Map tool : tools) { String toolId = (String) tool.get("resource_id"); - aggregated.addAll(getToolJson(toolId)); + if (!ensureUnique.contains(toolId)) { + aggregated.addAll(getToolJson(toolId)); + ensureUnique.add(toolId); + } } } } catch (Exception e) { - classLogger.error(Constants.STACKTRACE, e); + classLogger.error("Unable to add tool map from workspace mcp", e); } }