aboutsummaryrefslogtreecommitdiff
path: root/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java
diff options
context:
space:
mode:
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.java9
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()