mirror of
https://github.com/alibaba/arthas.git
synced 2024-04-21 10:21:39 +00:00
catch unknown message type error
This commit is contained in:
@@ -4,8 +4,9 @@ option java_multiple_files = true;
|
||||
package com.alibaba.arthas.channel.proto;
|
||||
|
||||
message StatusResult {
|
||||
int32 statusCode = 1;
|
||||
string message = 2;
|
||||
string type = 1;
|
||||
sint32 statusCode = 2;
|
||||
string message = 3;
|
||||
}
|
||||
|
||||
message SystemEnvResult {
|
||||
@@ -16,4 +17,10 @@ message SystemEnvResult {
|
||||
message VersionResult {
|
||||
string type = 1;
|
||||
string version = 2;
|
||||
}
|
||||
|
||||
message SessionResult {
|
||||
string type = 1;
|
||||
int64 javaPid = 2;
|
||||
string sessionId = 3;
|
||||
}
|
||||
+5
@@ -9,6 +9,7 @@ import com.alibaba.arthas.channel.proto.ExecuteParams;
|
||||
import com.alibaba.arthas.channel.proto.ExecuteResult;
|
||||
import com.alibaba.arthas.channel.proto.GeneralResult;
|
||||
import com.alibaba.arthas.channel.proto.ResponseStatus;
|
||||
import com.alibaba.arthas.channel.proto.SessionResult;
|
||||
import com.alibaba.arthas.channel.proto.StatusResult;
|
||||
import com.alibaba.arthas.channel.proto.SystemEnvResult;
|
||||
import com.alibaba.arthas.channel.proto.VersionResult;
|
||||
@@ -161,6 +162,10 @@ public class ArthasServiceAcquireRequestTest {
|
||||
.setStatusCode(0)
|
||||
.build()));
|
||||
} else {
|
||||
results.add(Any.pack(SessionResult.newBuilder()
|
||||
.setJavaPid(1923)
|
||||
.setSessionId("sessionId-222")
|
||||
.build()));
|
||||
results.add(Any.pack(StatusResult.newBuilder()
|
||||
.setStatusCode(-1)
|
||||
.setMessage("Not supported command")
|
||||
|
||||
+14
-6
@@ -162,15 +162,21 @@ public class ArthasServiceServerTest {
|
||||
executeResult.getJobId();
|
||||
executeResult.getJobStatus();
|
||||
List<Any> resultsList = executeResult.getResultsList();
|
||||
try {
|
||||
for (Any result : resultsList) {
|
||||
String clazzName = result.getTypeUrl().split("/")[1];
|
||||
for (Any result : resultsList) {
|
||||
String clazzName = result.getTypeUrl().split("/")[1];;
|
||||
Message resultMessage = null;
|
||||
//catch unknown message type error
|
||||
try {
|
||||
Class<Message> resultClass = (Class<Message>) Class.forName(clazzName);
|
||||
Message resultMessage = result.unpack(resultClass);
|
||||
resultMessage = result.unpack(resultClass);
|
||||
} catch (Throwable e) {
|
||||
System.out.println("parse result failure, clazzName: " + clazzName +", error: " + e.toString());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (resultMessage != null) {
|
||||
handleResultMessage(resultMessage);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
try {
|
||||
@@ -238,6 +244,8 @@ public class ArthasServiceServerTest {
|
||||
}
|
||||
|
||||
private static void handleResultMessage(Message resultMessage) {
|
||||
|
||||
System.out.println("result message: "+resultMessage.getClass().getName());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user