diff options
Diffstat (limited to 'central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java')
-rw-r--r-- | central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java | 9 |
1 files changed, 8 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 4ba720a..8816dcb 100644 --- a/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java +++ b/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java @@ -260,7 +260,14 @@ public class ManageHandler implements ISubRouter { ).<Pair<Peer /* Existing */, Peer /* Input */>>compose(peer -> Future.future(f -> peerService.updateTo(peer.b /* New Peer */, ar -> { if (ar.succeeded()) f.complete(peer); - else f.fail(ar.cause()); + else { + if(((ServiceException)ar.cause()).getDebugInfo().getString("causeName") + .equals(DuplicatePeerException.class.getName())) { + f.fail(new FormException(peer.b, "A peer on your chosen node already exists. You can only create one peer per node.")); + return; + } + f.fail(ar.cause()); + } }))) .onSuccess(pair -> { ctx.response() |