2121
2222import org .elasticsearch .common .component .AbstractComponent ;
2323import org .elasticsearch .common .inject .Inject ;
24+ import org .elasticsearch .common .io .stream .NamedWriteable ;
2425import org .elasticsearch .common .io .stream .NamedWriteableRegistry ;
2526import org .elasticsearch .common .settings .Settings ;
2627import org .elasticsearch .index .query .EmptyQueryBuilder ;
@@ -40,11 +41,12 @@ public class IndicesQueriesRegistry extends AbstractComponent {
4041 public IndicesQueriesRegistry (Settings settings , Set <QueryParser > injectedQueryParsers , NamedWriteableRegistry namedWriteableRegistry ) {
4142 super (settings );
4243 Map <String , QueryParser <?>> queryParsers = new HashMap <>();
43- for (QueryParser <?> queryParser : injectedQueryParsers ) {
44+ for (@ SuppressWarnings ( "unchecked" ) QueryParser <? extends QueryBuilder > queryParser : injectedQueryParsers ) {
4445 for (String name : queryParser .names ()) {
4546 queryParsers .put (name , queryParser );
4647 }
47- namedWriteableRegistry .registerPrototype (QueryBuilder .class , queryParser .getBuilderPrototype ());
48+ @ SuppressWarnings ("unchecked" ) NamedWriteable <? extends QueryBuilder > qb = queryParser .getBuilderPrototype ();
49+ namedWriteableRegistry .registerPrototype (QueryBuilder .class , qb );
4850 }
4951 // EmptyQueryBuilder is not registered as query parser but used internally.
5052 // We need to register it with the NamedWriteableRegistry in order to serialize it
@@ -58,4 +60,4 @@ public IndicesQueriesRegistry(Settings settings, Set<QueryParser> injectedQueryP
5860 public Map <String , QueryParser <?>> queryParsers () {
5961 return queryParsers ;
6062 }
61- }
63+ }
0 commit comments