void () { while (!myMainProcessHandler.isProcessTerminated() && !myMainProcessHandler.isProcessTerminating() && !mySocket.isClosed()) { try { if (ExternalSystemTaskDebugRunner.LOG.isDebugEnabled()) { int port = mySocket.getLocalPort(); String host = mySocket.getInetAddress().getHostAddress(); String productName = ApplicationNamesInfo.getInstance().getFullProductName(); ExternalSystemTaskDebugRunner.LOG.debug(String.format("%s wait for debug process signal on '%s:%d'", productName, host, port)); } handleForkedProcessSignal(mySocket.accept()); } catch (EOFException ignored) { } catch (SocketException e) { ExternalSystemTaskDebugRunner.LOG.debug(e); } catch (IOException e) { ExternalSystemTaskDebugRunner.LOG.warn(e); } } try { if (!mySocket.isClosed()) { mySocket.close(); } } catch (IOException e) { ExternalSystemTaskDebugRunner.LOG.debug(e); } }