aboutsummaryrefslogtreecommitdiff
path: root/central
diff options
context:
space:
mode:
authorTrumeet <17158086+Trumeet@users.noreply.github.com>2021-01-09 13:35:46 -0800
committerTrumeet <17158086+Trumeet@users.noreply.github.com>2021-01-09 13:35:51 -0800
commitfbff51c02a77f3526ff809863f8df56025e19e08 (patch)
treedaf208b21d393de458f78cee667f645828551dc6 /central
parent96e1b8efc8d29cd815e8f6fb421337e7e0c1d2e1 (diff)
downloaddn42peering-fbff51c02a77f3526ff809863f8df56025e19e08.tar
dn42peering-fbff51c02a77f3526ff809863f8df56025e19e08.tar.gz
dn42peering-fbff51c02a77f3526ff809863f8df56025e19e08.tar.bz2
dn42peering-fbff51c02a77f3526ff809863f8df56025e19e08.zip
fix(central): manually set ID for rendering when editing a peer and the parsing process fails
Diffstat (limited to 'central')
-rw-r--r--central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java b/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java
index a0ef17f..d00ccfa 100644
--- a/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java
+++ b/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java
@@ -367,11 +367,19 @@ public class ManageHandler implements ISubRouter {
if (err instanceof HTTPException) {
ctx.response().setStatusCode(((HTTPException) err).code).end();
} else if (err instanceof FormException) {
+ final Peer peer = (Peer) ((FormException) err).data;
+ if(peer != null) {
+ // The exception may be generated from parseForm
+ // In this case, the peer contains default data (like ID, keys, asn)
+ // ID is the most important one since it determines the action of the form
+ // so we need to manually ensure it here.
+ peer.setId(Integer.parseInt(id)); // It must work.
+ }
renderForm(engine,
nodeService,
false,
asn,
- (Peer) ((FormException) err).data,
+ peer,
Arrays.asList(((FormException) err).errors),
res -> {
if (res.succeeded()) {