aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-05-23 07:56:00 +0200
committerHarald Musum <musum@oath.com>2018-05-23 08:07:38 +0200
commit325e4e8350fb2dc1ab01ae8444acd6d323dee32f (patch)
treefd912201d1238bd4f73e180cb145f7ca4eb85531
parentd5992317aedb6dc9b4846ca08c6bc942ea79facc (diff)
Clean up temp dirs in finally clause
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java33
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java12
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 {