Skip to content

Commit 3a998be

Browse files
committed
[fel] remove tools lock
1 parent f4e4319 commit 3a998be

File tree

1 file changed

+5
-12
lines changed
  • framework/fel/java/plugins/tool-mcp-client/src/main/java/modelengine/fel/tool/mcp/client/support

1 file changed

+5
-12
lines changed

framework/fel/java/plugins/tool-mcp-client/src/main/java/modelengine/fel/tool/mcp/client/support/DefaultMcpClient.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ public class DefaultMcpClient implements McpClient {
7272
private volatile ServerSchema serverSchema;
7373
private volatile boolean initialized = false;
7474
private volatile boolean closed = false;
75-
private final List<Tool> tools = new ArrayList<>();
7675
private final Object initializedLock = LockUtils.newSynchronizedLock();
77-
private final Object toolsLock = LockUtils.newSynchronizedLock();
7876
private final Map<Long, Consumer<JsonRpc.Response<Long>>> responseConsumers = new ConcurrentHashMap<>();
7977
private final Map<Long, Boolean> pendingRequests = new ConcurrentHashMap<>();
8078
private final Map<Long, Result> pendingResults = new ConcurrentHashMap<>();
@@ -265,9 +263,7 @@ public List<Tool> getTools() {
265263
Result result = this.pendingResults.remove(requestId);
266264
this.pendingRequests.remove(requestId);
267265
if (result.isSuccess()) {
268-
synchronized (this.toolsLock) {
269-
return this.tools;
270-
}
266+
return ObjectUtils.cast(result.getContent());
271267
} else {
272268
throw new IllegalStateException(result.getError());
273269
}
@@ -284,13 +280,10 @@ private void getTools0(JsonRpc.Response<Long> response) {
284280
}
285281
Map<String, Object> result = cast(response.result());
286282
List<Map<String, Object>> rawTools = cast(result.get("tools"));
287-
synchronized (this.toolsLock) {
288-
this.tools.clear();
289-
this.tools.addAll(rawTools.stream()
290-
.map(rawTool -> ObjectUtils.<Tool>toCustomObject(rawTool, Tool.class))
291-
.toList());
292-
}
293-
this.pendingResults.put(response.id(), Result.success(this.tools));
283+
List<Tool> tools = new ArrayList<>(rawTools.stream()
284+
.map(rawTool -> ObjectUtils.<Tool>toCustomObject(rawTool, Tool.class))
285+
.toList());
286+
this.pendingResults.put(response.id(), Result.success(tools));
294287
this.pendingRequests.put(response.id(), false);
295288
}
296289

0 commit comments

Comments
 (0)