From f48f140aab3ef7e5bfeaea3e40f229abaee3d8a1 Mon Sep 17 00:00:00 2001 From: michaelm Date: Fri, 9 Sep 2011 15:24:35 +0100 Subject: [PATCH] 7088747: Use multicatch in Socket constructor Reviewed-by: alanb --- src/share/classes/java/net/Socket.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/share/classes/java/net/Socket.java b/src/share/classes/java/net/Socket.java index d2bdd529f..91ec5862b 100644 --- a/src/share/classes/java/net/Socket.java +++ b/src/share/classes/java/net/Socket.java @@ -420,15 +420,14 @@ class Socket implements java.io.Closeable { createImpl(stream); if (localAddr != null) bind(localAddr); - if (address != null) - connect(address); - } catch (IOException e) { - close(); - throw e; - } finally { - // if bind() or connect threw a runtime exception - if ((localAddr != null && !bound) || (address != null && !connected)) + connect(address); + } catch (IOException | IllegalArgumentException | SecurityException e) { + try { close(); + } catch (IOException ce) { + e.addSuppressed(ce); + } + throw e; } } -- GitLab