diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-06-16 13:58:18 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-06-17 11:18:07 +0000 |
commit | 2f68ebb8b6cea8a2450eebfb5874df7c209de7af (patch) | |
tree | d9c60dd7d0292978b1704558fe184b4c62c4c628 /config-model/src/main/java/com/yahoo/schema | |
parent | a18e8e12faec6318c1d5768fd4edf42efd0ecb78 (diff) |
remove sort in SearchOrderer
* to keep unit tests deterministic, sort earlier instead
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/ApplicationBuilder.java | 11 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/derived/SearchOrderer.java | 4 |
2 files changed, 9 insertions, 6 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/ApplicationBuilder.java b/config-model/src/main/java/com/yahoo/schema/ApplicationBuilder.java index 29482431aa0..9141ed45293 100644 --- a/config-model/src/main/java/com/yahoo/schema/ApplicationBuilder.java +++ b/config-model/src/main/java/com/yahoo/schema/ApplicationBuilder.java @@ -132,6 +132,8 @@ public class ApplicationBuilder { this.deployLogger = deployLogger; this.properties = properties; this.documentsOnly = documentsOnly; + var list = new ArrayList<>(applicationPackage.getSchemas()); + list.sort((a, b) -> a.getName().compareTo(b.getName())); for (NamedReader reader : applicationPackage.getSchemas()) addSchema(reader); } @@ -407,8 +409,13 @@ public class ApplicationBuilder { properties, rankProfileRegistry, queryProfileRegistry); - for (var i = Files.list(new File(dir).toPath()).filter(p -> p.getFileName().toString().endsWith(".sd")).iterator(); i.hasNext(); ) { - builder.addSchemaFile(i.next().toString()); + + var fnli = Files.list(new File(dir).toPath()) + .map(p -> p.toString()) + .filter(fn -> fn.endsWith(".sd")) + .sorted(); + for (var i = fnli.iterator(); i.hasNext(); ) { + builder.addSchemaFile(i.next()); } builder.build(true); return builder; diff --git a/config-model/src/main/java/com/yahoo/schema/derived/SearchOrderer.java b/config-model/src/main/java/com/yahoo/schema/derived/SearchOrderer.java index 3bab808beff..d08cc472f82 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/SearchOrderer.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/SearchOrderer.java @@ -33,10 +33,6 @@ public class SearchOrderer { * @return a new list containing the same search instances in the right order */ public List<Schema> order(List<Schema> unordered) { - // Description above state that the original order should be preserved, except for the dependency constraint. - // Yet we botch that guarantee by sorting the list... - unordered.sort(Comparator.comparing(Schema::getName)); - // No, this is not a fast algorithm... indexOnDocumentName(unordered); List<Schema> ordered = new ArrayList<>(unordered.size()); |