diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-08-17 12:34:47 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-08-17 12:34:47 +0200 |
commit | 2b98869db4f2c97a36094553d012068654958e5b (patch) | |
tree | 5ca968be7467f3cc667b1719ec9834c71b76ee7e /config-model | |
parent | b79f66322dd188deafa835ee86ba6313d8643b6f (diff) |
Avoid ApplicationPackage.getFiles
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java index e073be71a0c..3bd96c9db26 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java @@ -39,6 +39,7 @@ import com.yahoo.tensor.serialization.TypedBinaryFormat; import java.io.BufferedReader; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; import java.io.StringReader; @@ -516,19 +517,19 @@ public class ConvertedModel { Map<String, RankingExpression> readExpressions() { Map<String, RankingExpression> expressions = new HashMap<>(); - List<NamedReader> expressionReaders = null; - try { - expressionReaders = application.getFiles(modelFiles.expressionsPath(), "expression"); - for (NamedReader expressionReader : expressionReaders) { - try { - expressions.put(expressionReader.getName(), new RankingExpression(expressionReader.getReader())); - } catch (ParseException e) { - throw new IllegalStateException("Could not parse " + expressionReader.getName(), e); - } + ApplicationFile expressionPath = application.getFile(modelFiles.expressionsPath()); + if ( ! expressionPath.exists() || ! expressionPath.isDirectory()) return Collections.emptyMap(); + for (ApplicationFile expressionFile : expressionPath.listFiles()) { + try { + String name = expressionFile.getPath().getName(); + expressions.put(name, new RankingExpression(name, expressionFile.createReader())); + } + catch (FileNotFoundException e) { + throw new IllegalStateException("Expression file removed while reading: " + expressionFile, e); + } + catch (ParseException e) { + throw new IllegalStateException("Invalid stored expression in " + expressionFile, e); } - } - finally { - expressionReaders.forEach(r -> close(r)); } return expressions; } @@ -688,7 +689,7 @@ public class ConvertedModel { } public Path expressionPath(String name) { - return storedModelPath().append("expressions").append(name + ".expression"); + return storedModelPath().append("expressions").append(name); } public Path expressionsPath() { |