@@ -406,4 +406,29 @@ public void testRolloverWithClosedIndexInAlias() throws Exception {
406406 assertEquals (writeIndexPrefix + "000001" , rolloverResponse .getOldIndex ());
407407 assertEquals (writeIndexPrefix + "000002" , rolloverResponse .getNewIndex ());
408408 }
409+
410+ public void testRolloverWithClosedWriteIndex () throws Exception {
411+ final String aliasName = "alias" ;
412+ final String openNonwriteIndex = "open-index-nonwrite" ;
413+ final String closedIndex = "closed-index-nonwrite" ;
414+ final String writeIndexPrefix = "write-index-" ;
415+ assertAcked (prepareCreate (openNonwriteIndex ).addAlias (new Alias (aliasName )).get ());
416+ assertAcked (prepareCreate (closedIndex ).addAlias (new Alias (aliasName )).get ());
417+ assertAcked (prepareCreate (writeIndexPrefix + "000001" ).addAlias (new Alias (aliasName ).writeIndex (true )).get ());
418+
419+ index (closedIndex , SINGLE_MAPPING_NAME , null , "{\" foo\" : \" bar\" }" );
420+ index (aliasName , SINGLE_MAPPING_NAME , null , "{\" foo\" : \" bar\" }" );
421+ index (aliasName , SINGLE_MAPPING_NAME , null , "{\" foo\" : \" bar\" }" );
422+ refresh (aliasName );
423+
424+ assertAcked (client ().admin ().indices ().prepareClose (closedIndex ).get ());
425+ assertAcked (client ().admin ().indices ().prepareClose (writeIndexPrefix + "000001" ).get ());
426+
427+ RolloverResponse rolloverResponse = client ().admin ().indices ().prepareRolloverIndex (aliasName )
428+ .addMaxIndexDocsCondition (1 )
429+ .get ();
430+ assertTrue (rolloverResponse .isRolledOver ());
431+ assertEquals (writeIndexPrefix + "000001" , rolloverResponse .getOldIndex ());
432+ assertEquals (writeIndexPrefix + "000002" , rolloverResponse .getNewIndex ());
433+ }
409434}
0 commit comments