diff options
author | Harald Musum <musum@oath.com> | 2018-05-23 07:56:00 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-05-23 08:07:38 +0200 |
commit | 325e4e8350fb2dc1ab01ae8444acd6d323dee32f (patch) | |
tree | fd912201d1238bd4f73e180cb145f7ca4eb85531 | |
parent | d5992317aedb6dc9b4846ca08c6bc942ea79facc (diff) |
Clean up temp dirs in finally clause
2 files changed, 25 insertions, 20 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java index e7e65751ee8..783f7361ad5 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java @@ -56,20 +56,23 @@ public class SchemaValidators { */ public SchemaValidators(Version vespaVersion, DeployLogger logger) { this.deployLogger = logger; - File schemaDir; + File schemaDir = null; try { schemaDir = saveSchemasFromJar(new File(SchemaValidators.schemaDirBase), vespaVersion); - } catch (IOException e) { - throw new RuntimeException(e); + servicesXmlValidator = createValidator(schemaDir, servicesXmlSchemaName); + hostsXmlValidator = createValidator(schemaDir, hostsXmlSchemaName); + deploymentXmlValidator = createValidator(schemaDir, deploymentXmlSchemaName); + validationOverridesXmlValidator = createValidator(schemaDir, validationOverridesXmlSchemaName); + containerIncludeXmlValidator = createValidator(schemaDir, containerIncludeXmlSchemaName); + routingStandaloneXmlValidator = createValidator(schemaDir, routingStandaloneXmlSchemaName); + } catch (IOException ioe) { + throw new RuntimeException(ioe); + } catch (Exception e) { + throw e; + } finally { + if (schemaDir != null) + IOUtils.recursiveDeleteDir(schemaDir); } - - servicesXmlValidator = createValidator(schemaDir, servicesXmlSchemaName); - hostsXmlValidator = createValidator(schemaDir, hostsXmlSchemaName); - deploymentXmlValidator = createValidator(schemaDir, deploymentXmlSchemaName); - validationOverridesXmlValidator = createValidator(schemaDir, validationOverridesXmlSchemaName); - containerIncludeXmlValidator = createValidator(schemaDir, containerIncludeXmlSchemaName); - routingStandaloneXmlValidator = createValidator(schemaDir, routingStandaloneXmlSchemaName); - IOUtils.recursiveDeleteDir(schemaDir); } /** @@ -81,19 +84,19 @@ public class SchemaValidators { this(vespaVersion, new BaseDeployLogger()); } - public SchemaValidator servicesXmlValidator() throws IOException { + public SchemaValidator servicesXmlValidator() { return servicesXmlValidator; } - public SchemaValidator hostsXmlValidator() throws IOException { + public SchemaValidator hostsXmlValidator() { return hostsXmlValidator; } - public SchemaValidator deploymentXmlValidator() throws IOException { + public SchemaValidator deploymentXmlValidator() { return deploymentXmlValidator; } - SchemaValidator validationOverridesXmlValidator() throws IOException { + SchemaValidator validationOverridesXmlValidator() { return validationOverridesXmlValidator; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java index 721e1c08989..7f8ff6edd85 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java @@ -48,8 +48,9 @@ public class RankSetupValidator extends Validator { @Override public void validate(VespaModel model, DeployState deployState) { + File cfgDir = null; try { - File cfgDir = Files.createTempDirectory("deploy_ranksetup").toFile(); + cfgDir = Files.createTempDirectory("deploy_ranksetup").toFile(); for (AbstractSearchCluster cluster : model.getSearchClusters()) { // Skipping rank expression checking for streaming clusters, not implemented yet @@ -66,9 +67,12 @@ public class RankSetupValidator extends Validator { } } } - deleteTempDir(cfgDir); + } catch (IOException e) { throw new RuntimeException(e); + } finally { + if (cfgDir != null) + deleteTempDir(cfgDir); } } @@ -93,9 +97,7 @@ public class RankSetupValidator extends Validator { } private void deleteTempDir(File dir) { - if (!IOUtils.recursiveDeleteDir(dir)) { - throw new RuntimeException("Failed deleting " + dir); - } + IOUtils.recursiveDeleteDir(dir); } private void writeConfigs(String dir, AbstractConfigProducer producer) throws IOException { |