From 47411f9ae5f38a6dae60f83c0585ba99cded850b Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Mon, 18 Jun 2012 12:53:25 +0400 Subject: [PATCH] close ServerSocket instance in finally block --- .../src/com/intellij/util/net/NetUtils.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/platform/platform-api/src/com/intellij/util/net/NetUtils.java b/platform/platform-api/src/com/intellij/util/net/NetUtils.java index cc36bd8264af..8f92fe6e52db 100644 --- a/platform/platform-api/src/com/intellij/util/net/NetUtils.java +++ b/platform/platform-api/src/com/intellij/util/net/NetUtils.java @@ -40,19 +40,22 @@ public class NetUtils { public static int findAvailableSocketPort() throws IOException { final ServerSocket serverSocket = new ServerSocket(0); - int port = serverSocket.getLocalPort(); - //workaround for linux : calling close() immediately after opening socket - //may result that socket is not closed - synchronized(serverSocket) { - try { - serverSocket.wait(1); - } - catch (InterruptedException e) { - LOG.error(e); + try { + int port = serverSocket.getLocalPort(); + //workaround for linux : calling close() immediately after opening socket + //may result that socket is not closed + synchronized (serverSocket) { + try { + serverSocket.wait(1); + } + catch (InterruptedException e) { + LOG.error(e); + } } + return port; + } finally { + serverSocket.close(); } - serverSocket.close(); - return port; } public static int[] findAvailableSocketPorts(int capacity) throws IOException {