summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-08-17 12:34:47 +0200
committerJon Bratseth <bratseth@oath.com>2018-08-17 12:34:47 +0200
commit2b98869db4f2c97a36094553d012068654958e5b (patch)
tree5ca968be7467f3cc667b1719ec9834c71b76ee7e /config-model
parentb79f66322dd188deafa835ee86ba6313d8643b6f (diff)
Avoid ApplicationPackage.getFiles
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConvertedModel.java27
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() {