Skip to content

Commit 993f908

Browse files
committed
add throwable adapter
1 parent 0efeaa2 commit 993f908

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

keyext.api/src/main/java/org/keyproject/key/api/StartServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void run() {
146146
public static void configureJson(GsonBuilder gsonBuilder) {
147147
gsonBuilder.registerTypeHierarchyAdapter(Object.class, new GenericSerializer());
148148
gsonBuilder.registerTypeAdapter(File.class, new KeyAdapter.FileTypeAdapter());
149-
149+
gsonBuilder.registerTypeAdapter(Throwable.class, new KeyAdapter.ThrowableAdapter());
150150
}
151151

152152
public static Launcher<ClientApi> launch(OutputStream out, InputStream in, KeyApiImpl keyApi) {

keyext.api/src/main/java/org/keyproject/key/api/adapters/KeyAdapter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ public JsonElement serialize(Function src, Type typeOfSrc, JsonSerializationCont
7474
}
7575
}
7676

77+
public static class ThrowableAdapter implements JsonSerializer<Throwable> {
78+
@Override
79+
public JsonElement serialize(Throwable src, Type typeOfSrc, JsonSerializationContext context) {
80+
var obj = new JsonObject();
81+
obj.add("$class", context.serialize(src.getClass().getSimpleName()));
82+
obj.add("message", context.serialize(src.getMessage()));
83+
obj.add("cause", context.serialize(src.getCause()));
84+
return obj;
85+
}
86+
}
87+
7788
/*class IdentifiableTypeAdapter implements JsonSerializer<Identifiable>, JsonDeserializer<Identifiable> {
7889
@Override
7990
public Identifiable deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {

0 commit comments

Comments
 (0)