Skip to content

Commit 77c1144

Browse files
jbachorikmuse
andcommitted
address: respond to review comments on PR #810
- McpProtocol.java:268/270 — wrap Double.parseDouble and Long.parseLong in try/catch, rethrow as IllegalArgumentException with position context - BTraceMcpServer.java:116 — remove unused params parameter from handleInitialize - README.md:44/62/78/96 — fix class name from org.openjdk.btrace.mcp to io.btrace.mcp.BTraceMcpServer - GpuBridgeServiceImpl.java:207 — remove unused totalNative accumulator variable - ListJvmsHandler.java:26-28,55 — replace sun.jvmstat.monitor.* with VirtualMachine.list(); add @SuppressWarnings on unused arguments param - DeployOnelinerHandler.java:160 — register client with ClientManager after successful submission - DeployScriptHandler.java:160 — register client with ClientManager after successful submission - LlmTrace.java:69 — remove unused @ProbeMethodName String methodName parameter Also apply spotless import ordering to all new btrace-mcp-server source files. Co-Authored-By: muse <muse@noreply>
1 parent a41e0c3 commit 77c1144

13 files changed

Lines changed: 87 additions & 57 deletions

File tree

btrace-dist/src/main/resources/samples/LlmTrace.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import io.btrace.core.annotations.OnMethod;
3333
import io.btrace.core.annotations.OnTimer;
3434
import io.btrace.core.annotations.ProbeClassName;
35-
import io.btrace.core.annotations.ProbeMethodName;
3635
import io.btrace.llm.LlmTraceService;
3736

3837
import static io.btrace.core.BTraceUtils.*;
@@ -66,7 +65,6 @@ public class LlmTrace {
6665
location = @Location(Kind.RETURN))
6766
public static void onLangchain4jGenerate(
6867
@ProbeClassName String className,
69-
@ProbeMethodName String methodName,
7068
@Duration long duration) {
7169
// Model name extracted from the class; token counts need return value parsing
7270
// For a production script, parse the Response<AiMessage> return value

btrace-extensions/btrace-gpu-bridge/src/main/java/io/btrace/gpu/GpuBridgeServiceImpl.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,9 @@ public String getSummary() {
204204
// Native calls
205205
if (!nativeStats.isEmpty()) {
206206
sb.append("--- Native Calls ---\n");
207-
long totalNative = 0;
208207
for (Map.Entry<String, NativeCallStats> entry : nativeStats.entrySet()) {
209208
NativeCallStats ns = entry.getValue();
210209
long calls = ns.calls.get();
211-
totalNative += calls;
212210
long avgUs = calls > 0 ? (ns.totalDurationNanos.get() / calls) / 1000 : 0;
213211
sb.append(" ")
214212
.append(entry.getKey())

btrace-mcp-server/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
4141
"command": "java",
4242
"args": [
4343
"-cp", "/path/to/btrace/lib/*",
44-
"org.openjdk.btrace.mcp.BTraceMcpServer"
44+
"io.btrace.mcp.BTraceMcpServer"
4545
]
4646
}
4747
}
@@ -59,7 +59,7 @@ Add to your project's `.mcp.json`:
5959
"command": "java",
6060
"args": [
6161
"-cp", "/path/to/btrace/lib/*",
62-
"org.openjdk.btrace.mcp.BTraceMcpServer"
62+
"io.btrace.mcp.BTraceMcpServer"
6363
]
6464
}
6565
}
@@ -75,7 +75,7 @@ Or configure globally in `~/.claude/settings.json`:
7575
"command": "java",
7676
"args": [
7777
"-cp", "/path/to/btrace/lib/*",
78-
"org.openjdk.btrace.mcp.BTraceMcpServer"
78+
"io.btrace.mcp.BTraceMcpServer"
7979
]
8080
}
8181
}
@@ -93,7 +93,7 @@ If you have BTrace installed (e.g. via SDKMAN), you can reference the distributi
9393
"command": "java",
9494
"args": [
9595
"-cp", "$BTRACE_HOME/lib/*:$BTRACE_HOME/build/btrace-mcp-server.jar",
96-
"org.openjdk.btrace.mcp.BTraceMcpServer"
96+
"io.btrace.mcp.BTraceMcpServer"
9797
]
9898
}
9999
}

btrace-mcp-server/src/main/java/io/btrace/mcp/BTraceMcpServer.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
*/
1717
package io.btrace.mcp;
1818

19+
import java.io.IOException;
20+
import java.util.ArrayList;
21+
import java.util.LinkedHashMap;
22+
import java.util.List;
23+
import java.util.Map;
24+
1925
import io.btrace.mcp.prompts.DiagnosticPrompts;
2026
import io.btrace.mcp.tools.DeployOnelinerHandler;
2127
import io.btrace.mcp.tools.DeployScriptHandler;
@@ -24,11 +30,7 @@
2430
import io.btrace.mcp.tools.ListJvmsHandler;
2531
import io.btrace.mcp.tools.ListProbesHandler;
2632
import io.btrace.mcp.tools.SendEventHandler;
27-
import java.io.IOException;
28-
import java.util.ArrayList;
29-
import java.util.LinkedHashMap;
30-
import java.util.List;
31-
import java.util.Map;
33+
3234
import org.slf4j.Logger;
3335
import org.slf4j.LoggerFactory;
3436

@@ -86,7 +88,7 @@ void run() throws IOException {
8688
try {
8789
switch (method) {
8890
case "initialize":
89-
handleInitialize(id, params);
91+
handleInitialize(id);
9092
break;
9193
case "notifications/initialized":
9294
// Client acknowledgement — no response needed
@@ -113,7 +115,7 @@ void run() throws IOException {
113115
}
114116
}
115117

116-
private void handleInitialize(Object id, Map<String, Object> params) throws IOException {
118+
private void handleInitialize(Object id) throws IOException {
117119
Map<String, Object> serverInfo = new LinkedHashMap<>();
118120
serverInfo.put("name", SERVER_NAME);
119121
serverInfo.put("version", SERVER_VERSION);

btrace-mcp-server/src/main/java/io/btrace/mcp/ClientManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
*/
1717
package io.btrace.mcp;
1818

19-
import io.btrace.client.Client;
2019
import java.util.Map;
2120
import java.util.concurrent.ConcurrentHashMap;
21+
22+
import io.btrace.client.Client;
23+
2224
import org.slf4j.Logger;
2325
import org.slf4j.LoggerFactory;
2426

btrace-mcp-server/src/main/java/io/btrace/mcp/McpProtocol.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.LinkedHashMap;
2727
import java.util.List;
2828
import java.util.Map;
29+
2930
import org.slf4j.Logger;
3031
import org.slf4j.LoggerFactory;
3132

@@ -265,9 +266,18 @@ Object parseNumber() {
265266
}
266267
String numStr = src.substring(start, pos);
267268
if (isFloat) {
268-
return Double.parseDouble(numStr);
269+
try {
270+
return Double.parseDouble(numStr);
271+
} catch (NumberFormatException e) {
272+
throw new IllegalArgumentException("Invalid number at " + start + ": " + numStr, e);
273+
}
274+
}
275+
long val;
276+
try {
277+
val = Long.parseLong(numStr);
278+
} catch (NumberFormatException e) {
279+
throw new IllegalArgumentException("Invalid number at " + start + ": " + numStr, e);
269280
}
270-
long val = Long.parseLong(numStr);
271281
if (val >= Integer.MIN_VALUE && val <= Integer.MAX_VALUE) {
272282
return (int) val;
273283
}

btrace-mcp-server/src/main/java/io/btrace/mcp/tools/DeployOnelinerHandler.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,6 @@
1616
*/
1717
package io.btrace.mcp.tools;
1818

19-
import io.btrace.client.Client;
20-
import io.btrace.compiler.oneliner.OnelinerAST.OnelinerNode;
21-
import io.btrace.compiler.oneliner.OnelinerCodeGenerator;
22-
import io.btrace.compiler.oneliner.OnelinerParser;
23-
import io.btrace.compiler.oneliner.OnelinerValidator;
24-
import io.btrace.core.comm.Command;
25-
import io.btrace.core.comm.PrintableCommand;
26-
import io.btrace.mcp.ClientManager;
2719
import java.io.PrintWriter;
2820
import java.io.StringWriter;
2921
import java.util.ArrayList;
@@ -33,6 +25,16 @@
3325
import java.util.concurrent.CountDownLatch;
3426
import java.util.concurrent.TimeUnit;
3527
import java.util.concurrent.atomic.AtomicBoolean;
28+
29+
import io.btrace.client.Client;
30+
import io.btrace.compiler.oneliner.OnelinerAST.OnelinerNode;
31+
import io.btrace.compiler.oneliner.OnelinerCodeGenerator;
32+
import io.btrace.compiler.oneliner.OnelinerParser;
33+
import io.btrace.compiler.oneliner.OnelinerValidator;
34+
import io.btrace.core.comm.Command;
35+
import io.btrace.core.comm.PrintableCommand;
36+
import io.btrace.mcp.ClientManager;
37+
3638
import org.slf4j.Logger;
3739
import org.slf4j.LoggerFactory;
3840

@@ -165,6 +167,8 @@ public static Map<String, Object> execute(Map<String, Object> arguments) {
165167
return toolResult("Probe exited with error:\n" + output.toString(), true);
166168
}
167169

170+
ClientManager.registerClient(pid, port, client);
171+
168172
String resultText =
169173
"Probe deployed successfully to PID "
170174
+ pid

btrace-mcp-server/src/main/java/io/btrace/mcp/tools/DeployScriptHandler.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
*/
1717
package io.btrace.mcp.tools;
1818

19-
import io.btrace.client.Client;
20-
import io.btrace.core.comm.Command;
21-
import io.btrace.core.comm.PrintableCommand;
22-
import io.btrace.mcp.ClientManager;
2319
import java.io.PrintWriter;
2420
import java.io.StringWriter;
2521
import java.util.ArrayList;
@@ -29,6 +25,12 @@
2925
import java.util.concurrent.CountDownLatch;
3026
import java.util.concurrent.TimeUnit;
3127
import java.util.concurrent.atomic.AtomicBoolean;
28+
29+
import io.btrace.client.Client;
30+
import io.btrace.core.comm.Command;
31+
import io.btrace.core.comm.PrintableCommand;
32+
import io.btrace.mcp.ClientManager;
33+
3234
import org.slf4j.Logger;
3335
import org.slf4j.LoggerFactory;
3436

@@ -169,6 +171,8 @@ public static Map<String, Object> execute(Map<String, Object> arguments) {
169171
return toolResult("Probe exited with error:\n" + output.toString(), true);
170172
}
171173

174+
ClientManager.registerClient(pid, port, client);
175+
172176
String resultText = "Script deployed successfully to PID " + pid + ".\nPort: " + port + "\n";
173177
if (output.length() > 0) {
174178
resultText += "\nInitial output:\n" + output.toString();

btrace-mcp-server/src/main/java/io/btrace/mcp/tools/DetachProbeHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
*/
1717
package io.btrace.mcp.tools;
1818

19-
import io.btrace.client.Client;
20-
import io.btrace.mcp.ClientManager;
2119
import java.util.ArrayList;
2220
import java.util.LinkedHashMap;
2321
import java.util.List;
2422
import java.util.Map;
23+
24+
import io.btrace.client.Client;
25+
import io.btrace.mcp.ClientManager;
26+
2527
import org.slf4j.Logger;
2628
import org.slf4j.LoggerFactory;
2729

btrace-mcp-server/src/main/java/io/btrace/mcp/tools/ExitProbeHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
*/
1717
package io.btrace.mcp.tools;
1818

19-
import io.btrace.client.Client;
20-
import io.btrace.mcp.ClientManager;
2119
import java.util.ArrayList;
2220
import java.util.LinkedHashMap;
2321
import java.util.List;
2422
import java.util.Map;
23+
24+
import io.btrace.client.Client;
25+
import io.btrace.mcp.ClientManager;
26+
2527
import org.slf4j.Logger;
2628
import org.slf4j.LoggerFactory;
2729

0 commit comments

Comments
 (0)