Author: chatellier Date: 2011-06-15 09:44:11 +0000 (Wed, 15 Jun 2011) New Revision: 3399 Log: Fix stream closing Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2011-06-15 09:13:50 UTC (rev 3398) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2011-06-15 09:44:11 UTC (rev 3399) @@ -50,6 +50,7 @@ import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.time.DurationFormatUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -164,15 +165,20 @@ log.info("recherche de la version"); String version = "0"; - BufferedReader reader = new BufferedReader(new FileReader(file)); - String line = reader.readLine(); - for (int i=0; i<5 && !(line.contains("version=") && line.contains("<dbobjects")); i++) { - // au max on lit 5 lignes, car normalement version est sur la 2eme - line = reader.readLine(); + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader(file)); + String line = reader.readLine(); + for (int i=0; i<5 && !(line.contains("version=") && line.contains("<dbobjects")); i++) { + // au max on lit 5 lignes, car normalement version est sur la 2eme + line = reader.readLine(); + } + if (line.contains("version=") && line.contains("<dbobjects")) { + version = line.replaceAll(".*?version=['\"]([0-9.]+)['\"].*", "$1"); + } + } finally { + IOUtils.closeQuietly(reader); } - if (line.contains("version=") && line.contains("<dbobjects")) { - version = line.replaceAll(".*?version=['\"]([0-9.]+)['\"].*", "$1"); - } log.info("Conversion du fichier depuis la version " + version + " vers " + LAST_2_VERSION); @@ -224,11 +230,11 @@ protected URL [] getXSLFile(String versionStart, String versionEnd) { List<URL> result = new ArrayList<URL>(); List xslurl = Resource.getURLs(".*?" + XSL_DIRECTORY + "/isis-fish-"+versionStart+"_.*.xsl$"); - while(xslurl.size() != 0){ + while (xslurl.size() != 0) { URL xsl = (URL)xslurl.get(0); result.add(xsl); String end = getVersionEnd(xsl); - if(VersionUtil.equals(versionEnd, end)){ + if (VersionUtil.equals(versionEnd, end)) { return result.toArray(new URL[result.size()]); } xslurl = Resource.getURLs(".*?" + XSL_DIRECTORY + "/isis-fish-"+end+"_.*.xsl$"); @@ -236,7 +242,7 @@ return null; } - protected String getVersionEnd(URL xslurl){ + protected String getVersionEnd(URL xslurl) { String version = xslurl.toExternalForm(); version = version.substring(version.lastIndexOf("_")+1, version.length()-".xsl".length()); return version; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-06-15 09:13:50 UTC (rev 3398) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-06-15 09:44:11 UTC (rev 3399) @@ -50,6 +50,7 @@ import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.ConvertUtilsBean; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.mutable.MutableInt; import org.apache.commons.lang.time.DurationFormatUtils; @@ -1091,12 +1092,14 @@ // sauvegarde des parametres Properties prop = param.toProperties(); //File f = IsisConfig.getSimulationParametersFile(tmpDirectory); - File f = new File(tmpDirectory, - SimulationStorage.PARAMETERS_FILENAME); - FileOutputStream out = new FileOutputStream(f); - //FileOutputStream out = new FileOutputStream(new File(tmpDirectory, IsisConfig.SIMULATION_PARAMETERS)); - prop.store(out, "Parameters"); - out.close(); + File f = new File(tmpDirectory, SimulationStorage.PARAMETERS_FILENAME); + FileOutputStream out = null; + try { + out = new FileOutputStream(f); + prop.store(out, "Parameters"); + } finally { + IOUtils.closeQuietly(out); + } // backup pour toutes les simulations, pour eviter que l'utilisateur // ne puisse le modifier en meme temps Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java 2011-06-15 09:13:50 UTC (rev 3398) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/ssh/SSHUtils.java 2011-06-15 09:44:11 UTC (rev 3399) @@ -38,6 +38,7 @@ import java.io.Writer; import java.util.Vector; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -196,13 +197,13 @@ int exitStatus = 0; + BufferedReader br = null; try { // exec previous command Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand(command); - BufferedReader br = new BufferedReader(new InputStreamReader( - channel.getInputStream())); + br = new BufferedReader(new InputStreamReader(channel.getInputStream())); channel.connect(); String line = null; while (true) { @@ -233,6 +234,8 @@ throw new SSHException("I/O error while executing command", e); } catch (IOException e) { throw new SSHException("I/O error while executing command", e); + } finally { + IOUtils.closeQuietly(br); } return exitStatus;
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org