# HG changeset patch # User Sascha L. Teichmann # Date 1266786355 0 # Node ID 65f09139e9b3ced54ec02dcb2019232ecabf174e # Parent 89aca25642d6151a8ce97a1ba8e896c9e44c2cb0 Fixed file handle leak when writing meta data. gnv-artifacts/trunk@694 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/ChangeLog Sun Feb 21 21:05:55 2010 +0000 @@ -1,3 +1,16 @@ +2010-02-21 Sascha L. Teichmann + + * src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java: + Fixed file handle leak when writing meta data. + + * src/main/java/de/intevation/gnv/state/StateBase.java, + src/main/java/de/intevation/gnv/state/MinMaxState.java, + src/main/java/de/intevation/gnv/utils/MapfileGenerator.java, + src/main/java/de/intevation/gnv/chart/DefaultHistogram.java, + src/main/java/de/intevation/gnv/chart/AbstractHistogram.java, + src/main/java/de/intevation/gnv/exports/ChartExportHelper.java: + Clean up imports. + 2010-02-19 Ingo Weinzierl * src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java: diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractHistogram.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractHistogram.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractHistogram.java Sun Feb 21 21:05:55 2010 +0000 @@ -8,13 +8,10 @@ import org.jfree.chart.ChartTheme; import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; -import org.jfree.chart.renderer.xy.XYBarRenderer; -import org.jfree.data.statistics.HistogramDataset; - +import org.jfree.chart.renderer.xy.XYBarRenderer; /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/chart/DefaultHistogram.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/DefaultHistogram.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/DefaultHistogram.java Sun Feb 21 21:05:55 2010 +0000 @@ -1,19 +1,13 @@ package de.intevation.gnv.chart; -import java.util.Locale; - import org.apache.log4j.Logger; import org.jfree.chart.ChartTheme; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.NumberAxis; + import org.jfree.chart.plot.XYPlot; -import org.jfree.chart.renderer.xy.XYBarRenderer; -import org.jfree.data.general.Dataset; import org.jfree.data.statistics.HistogramDataset; - /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */ diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/exports/ChartExportHelper.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/exports/ChartExportHelper.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/exports/ChartExportHelper.java Sun Feb 21 21:05:55 2010 +0000 @@ -4,33 +4,38 @@ import com.lowagie.text.DocumentException; import com.lowagie.text.PageSize; import com.lowagie.text.Rectangle; + import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfWriter; -import java.awt.Transparency; -import java.awt.Graphics; +import de.intevation.artifactdatabase.XMLUtils; + +import de.intevation.gnv.chart.Chart; + import java.awt.Graphics2D; -import java.awt.geom.Point2D; +import java.awt.Transparency; + +import java.awt.geom.Rectangle2D.Double; + import java.awt.geom.Rectangle2D; -import java.awt.geom.Rectangle2D.Double; + import java.awt.image.BufferedImage; + +import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.io.IOException; import java.io.UnsupportedEncodingException; + import javax.imageio.ImageIO; import org.apache.batik.svggen.SVGGraphics2D; import org.apache.batik.svggen.SVGGraphics2DIOException; + import org.apache.log4j.Logger; import org.jfree.chart.JFreeChart; -import de.intevation.artifactdatabase.XMLUtils; -import de.intevation.gnv.chart.Chart; - - /** * @author Ingo Weinzierl */ diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/state/MinMaxState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/MinMaxState.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/MinMaxState.java Sun Feb 21 21:05:55 2010 +0000 @@ -30,7 +30,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; -import org.w3c.dom.NodeList; /** * @author Tim Englich (tim.englich@intevation.de) diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/StateBase.java Sun Feb 21 21:05:55 2010 +0000 @@ -1,49 +1,59 @@ package de.intevation.gnv.state; +import de.intevation.artifactdatabase.Config; +import de.intevation.artifactdatabase.XMLUtils; + +import de.intevation.artifacts.ArtifactNamespaceContext; +import de.intevation.artifacts.CallContext; +import de.intevation.artifacts.CallMeta; + +import de.intevation.gnv.artifacts.GNVArtifactBase; + +import de.intevation.gnv.artifacts.cache.CacheFactory; + +import de.intevation.gnv.artifacts.ressource.RessourceFactory; + +import de.intevation.gnv.geobackend.base.Result; + +import de.intevation.gnv.geobackend.base.query.QueryExecutor; +import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; + +import de.intevation.gnv.geobackend.base.query.exception.QueryException; + +import de.intevation.gnv.geobackend.util.DateUtils; + +import de.intevation.gnv.state.describedata.DefaultKeyValueDescribeData; +import de.intevation.gnv.state.describedata.KeyValueDescibeData; +import de.intevation.gnv.state.describedata.MinMaxDescribeData; +import de.intevation.gnv.state.describedata.NamedArrayList; +import de.intevation.gnv.state.describedata.NamedCollection; +import de.intevation.gnv.state.describedata.SingleValueDescribeData; + +import de.intevation.gnv.state.exception.StateException; + +import de.intevation.gnv.utils.InputValidator; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Set; import javax.xml.xpath.XPathConstants; import net.sf.ehcache.Cache; import org.apache.log4j.Logger; + import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import de.intevation.artifactdatabase.Config; -import de.intevation.artifactdatabase.XMLUtils; -import de.intevation.artifacts.ArtifactNamespaceContext; -import de.intevation.artifacts.CallContext; -import de.intevation.artifacts.CallMeta; -import de.intevation.gnv.artifacts.GNVArtifactBase; -import de.intevation.gnv.artifacts.cache.CacheFactory; -import de.intevation.gnv.artifacts.ressource.RessourceFactory; -import de.intevation.gnv.geobackend.base.Result; -import de.intevation.gnv.geobackend.base.query.QueryExecutor; -import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; -import de.intevation.gnv.geobackend.base.query.exception.QueryException; -import de.intevation.gnv.geobackend.util.DateUtils; -import de.intevation.gnv.state.describedata.DefaultKeyValueDescribeData; -import de.intevation.gnv.state.describedata.KeyValueDescibeData; -import de.intevation.gnv.state.describedata.MinMaxDescribeData; -import de.intevation.gnv.state.describedata.NamedArrayList; -import de.intevation.gnv.state.describedata.NamedCollection; -import de.intevation.gnv.state.describedata.SingleValueDescribeData; -import de.intevation.gnv.state.exception.StateException; -import de.intevation.gnv.utils.InputValidator; - /** * @author Tim Englich (tim.englich@intevation.de) * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontalcrosssection/HorizontalCrossSectionMeshOutputState.java --- 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); diff -r 89aca25642d6 -r 65f09139e9b3 gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Fri Feb 19 13:28:34 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Sun Feb 21 21:05:55 2010 +0000 @@ -2,18 +2,18 @@ import de.intevation.artifactdatabase.Config; import de.intevation.artifactdatabase.XMLUtils; + import de.intevation.artifacts.ArtifactNamespaceContext; -import de.intevation.gnv.artifacts.context.GNVArtifactContext; + import de.intevation.gnv.wms.LayerInfo; import java.io.File; -import java.io.FilenameFilter; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; -import java.net.MalformedURLException; + import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -22,17 +22,16 @@ import javax.xml.xpath.XPathConstants; import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; + import org.apache.velocity.app.VelocityEngine; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; - /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */