1212import org .elasticsearch .TransportVersions ;
1313import org .elasticsearch .cluster .Diff ;
1414import org .elasticsearch .cluster .SimpleDiffable ;
15+ import org .elasticsearch .common .Strings ;
1516import org .elasticsearch .common .io .stream .StreamInput ;
1617import org .elasticsearch .common .io .stream .StreamOutput ;
1718import org .elasticsearch .xcontent .ToXContentFragment ;
@@ -38,7 +39,8 @@ public final class InferenceFieldMetadata implements SimpleDiffable<InferenceFie
3839 private static final String INFERENCE_ID_FIELD = "inference_id" ;
3940 private static final String SEARCH_INFERENCE_ID_FIELD = "search_inference_id" ;
4041 private static final String SOURCE_FIELDS_FIELD = "source_fields" ;
41- private static final String CHUNKING_SETTINGS_FIELD = "chunking_settings" ;
42+ static final String CHUNKING_SETTINGS_FIELD = "chunking_settings" ;
43+ private final int EXPECTED_CHUNKING_SETTINGS_SIZE = 3 ;
4244
4345 private final String name ;
4446 private final String inferenceId ;
@@ -62,6 +64,10 @@ public InferenceFieldMetadata(
6264 this .searchInferenceId = Objects .requireNonNull (searchInferenceId );
6365 this .sourceFields = Objects .requireNonNull (sourceFields );
6466 this .chunkingSettings = chunkingSettings ;
67+
68+ if (chunkingSettings != null && chunkingSettings .size () != EXPECTED_CHUNKING_SETTINGS_SIZE ) {
69+ throw new IllegalArgumentException ("Chunking settings did not contain expected number of entries, was: " + chunkingSettings );
70+ }
6571 }
6672
6773 public InferenceFieldMetadata (StreamInput input ) throws IOException {
@@ -112,6 +118,11 @@ public int hashCode() {
112118 return result ;
113119 }
114120
121+ @ Override
122+ public String toString () {
123+ return Strings .toString (this );
124+ }
125+
115126 public String getName () {
116127 return name ;
117128 }
@@ -182,7 +193,6 @@ public static InferenceFieldMetadata fromXContent(XContentParser parser) throws
182193 }
183194 } else if (CHUNKING_SETTINGS_FIELD .equals (currentFieldName )) {
184195 chunkingSettings = parser .map ();
185-
186196 } else {
187197 parser .skipChildren ();
188198 }
0 commit comments