@@ -301,6 +301,13 @@ public boolean isFailureStoreIndex(String indexName) {
301301 return failureIndices .containsIndex (indexName );
302302 }
303303
304+ /**
305+ * Returns true if the index name provided belongs to this data stream.
306+ */
307+ public boolean containsIndex (String indexName ) {
308+ return backingIndices .containsIndex (indexName ) || failureIndices .containsIndex (indexName );
309+ }
310+
304311 public DataStreamOptions getDataStreamOptions () {
305312 return dataStreamOptions ;
306313 }
@@ -782,8 +789,9 @@ public DataStream addBackingIndex(Metadata clusterMetadata, Index index) {
782789 // ensure that no aliases reference index
783790 ensureNoAliasesOnIndex (clusterMetadata , index );
784791
785- List <Index > backingIndices = new ArrayList <>(this .backingIndices .indices );
786- backingIndices .add (0 , index );
792+ List <Index > backingIndices = new ArrayList <>(this .backingIndices .indices .size () + 1 );
793+ backingIndices .add (index );
794+ backingIndices .addAll (this .backingIndices .indices );
787795 assert backingIndices .size () == this .backingIndices .indices .size () + 1 ;
788796 return copy ().setBackingIndices (this .backingIndices .copy ().setIndices (backingIndices ).build ())
789797 .setGeneration (generation + 1 )
@@ -808,8 +816,9 @@ public DataStream addFailureStoreIndex(Metadata clusterMetadata, Index index) {
808816
809817 ensureNoAliasesOnIndex (clusterMetadata , index );
810818
811- List <Index > updatedFailureIndices = new ArrayList <>(failureIndices .indices );
812- updatedFailureIndices .add (0 , index );
819+ List <Index > updatedFailureIndices = new ArrayList <>(failureIndices .indices .size () + 1 );
820+ updatedFailureIndices .add (index );
821+ updatedFailureIndices .addAll (failureIndices .indices );
813822 assert updatedFailureIndices .size () == failureIndices .indices .size () + 1 ;
814823 return copy ().setFailureIndices (failureIndices .copy ().setIndices (updatedFailureIndices ).build ())
815824 .setGeneration (generation + 1 )
@@ -1039,7 +1048,7 @@ private boolean isIndexOlderThan(
10391048 * we return false.
10401049 */
10411050 public boolean isIndexManagedByDataStreamLifecycle (Index index , Function <String , IndexMetadata > indexMetadataSupplier ) {
1042- if (backingIndices . containsIndex ( index . getName ()) == false && failureIndices . containsIndex (index .getName ()) == false ) {
1051+ if (containsIndex (index .getName ()) == false ) {
10431052 return false ;
10441053 }
10451054 IndexMetadata indexMetadata = indexMetadataSupplier .apply (index .getName ());
0 commit comments