Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java @ 623:65f09139e9b3
Fixed file handle leak when writing meta data.
gnv-artifacts/trunk@694 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 21 Feb 2010 21:05:55 +0000 |
parents | 89aca25642d6 |
children | 8d2bd52f05e3 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java Sun Feb 21 21:05:55 2010 +0000 @@ -383,10 +383,24 @@ return null; } - OutputStream out = new FileOutputStream(metaFile); - XMLUtils.toStream(meta, out); + OutputStream out = null; + boolean success = false; + try { + out = new FileOutputStream(metaFile); + success = XMLUtils.toStream(meta, out); + } + finally { + if (out != null) { + try { out.close(); } + catch (IOException ioe) {} + } + } - return meta; + if (!success && metaFile.exists()) { + metaFile.delete(); + } + + return success ? meta : null; } catch (FileNotFoundException fnfe) { log.error(fnfe);