From fab78b8fcda5372b202b9d0af387ec2fa862668e Mon Sep 17 00:00:00 2001 From: Andy Seaborne Date: Sun, 29 Jul 2018 17:20:53 +0100 Subject: [PATCH] JENA-1580: Better error message when port in use --- .../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java b/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java index 41f516f204b..f1680b66d1f 100644 --- a/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java +++ b/jena-fuseki2/jena-fuseki-basic/src/main/java/org/apache/jena/fuseki/cmds/FusekiBasicCmd.java @@ -18,6 +18,7 @@ package org.apache.jena.fuseki.cmds; +import java.net.BindException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -36,6 +37,7 @@ import org.apache.jena.atlas.lib.FileOps; import org.apache.jena.atlas.logging.FmtLog; import org.apache.jena.fuseki.Fuseki; +import org.apache.jena.fuseki.FusekiException; import org.apache.jena.fuseki.FusekiLogging; import org.apache.jena.fuseki.embedded.FusekiServer; import org.apache.jena.fuseki.server.DataAccessPoint; @@ -403,7 +405,17 @@ protected void exec() { try { FusekiServer server = buildServer(serverConfig); info(server, serverConfig); - server.start(); + try { + server.start(); + } catch (FusekiException ex) { + if ( ex.getCause() instanceof BindException ) { + Fuseki.serverLog.error("Failed to start server: "+ex.getCause().getMessage()+ ": port="+serverConfig.port) ; + System.exit(1); + } + throw ex; + } catch (Exception ex) { + throw new FusekiException("Failed to start server: " + ex.getMessage(), ex) ; + } server.join(); System.exit(0); }