Mercurial > hg > icedtea7-forest > jdk
changeset 9140:e13b17f95b16
7167293: FtpURLConnection connection leak on FileNotFoundException
Reviewed-by: chegar, rriggs
author | vtewari |
---|---|
date | Tue, 05 Apr 2016 17:07:56 +0100 |
parents | 34888f07a385 |
children | 7210793e4d38 |
files | src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java |
diffstat | 1 files changed, 33 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java Thu Apr 20 04:46:07 2017 +0100 +++ b/src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java Tue Apr 05 17:07:56 2016 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -298,6 +298,13 @@ // Just keep throwing for now. throw e; } catch (FtpProtocolException fe) { + if (ftp != null) { + try { + ftp.close(); + } catch (IOException ioe) { + fe.addSuppressed(ioe); + } + } throw new IOException(fe); } try { @@ -480,11 +487,34 @@ msgh.add("content-type", "text/plain"); msgh.add("access-type", "directory"); } catch (IOException ex) { - throw new FileNotFoundException(fullpath); + FileNotFoundException fnfe = new FileNotFoundException(fullpath); + if (ftp != null) { + try { + ftp.close(); + } catch (IOException ioe) { + fnfe.addSuppressed(ioe); + } + } + throw fnfe; } catch (FtpProtocolException ex2) { - throw new FileNotFoundException(fullpath); + FileNotFoundException fnfe = new FileNotFoundException(fullpath); + if (ftp != null) { + try { + ftp.close(); + } catch (IOException ioe) { + fnfe.addSuppressed(ioe); + } + } + throw fnfe; } } catch (FtpProtocolException ftpe) { + if (ftp != null) { + try { + ftp.close(); + } catch (IOException ioe) { + ftpe.addSuppressed(ioe); + } + } throw new IOException(ftpe); } setProperties(msgh);