@@ -92,10 +92,6 @@ public void testParseTimeValue() {
9292 TimeValue .parseTimeValue ("10 m" , null , "test" ));
9393 assertEquals (new TimeValue (10 , TimeUnit .MINUTES ),
9494 TimeValue .parseTimeValue ("10m" , null , "test" ));
95- assertEquals (new TimeValue (10 , TimeUnit .MINUTES ),
96- TimeValue .parseTimeValue ("10 M" , null , "test" ));
97- assertEquals (new TimeValue (10 , TimeUnit .MINUTES ),
98- TimeValue .parseTimeValue ("10M" , null , "test" ));
9995
10096 assertEquals (new TimeValue (10 , TimeUnit .HOURS ),
10197 TimeValue .parseTimeValue ("10 h" , null , "test" ));
@@ -115,6 +111,17 @@ public void testParseTimeValue() {
115111 assertEquals (new TimeValue (10 , TimeUnit .DAYS ),
116112 TimeValue .parseTimeValue ("10D" , null , "test" ));
117113
114+ // Time values of months should throw an exception as months are not
115+ // supported. Note that this is the only unit that is not case sensitive
116+ // as `m` is the only character that is overloaded in terms of which
117+ // time unit is expected between the upper and lower case versions
118+ expectThrows (ElasticsearchParseException .class , () -> {
119+ TimeValue .parseTimeValue ("10 M" , null , "test" );
120+ });
121+ expectThrows (ElasticsearchParseException .class , () -> {
122+ TimeValue .parseTimeValue ("10M" , null , "test" );
123+ });
124+
118125 final int length = randomIntBetween (0 , 8 );
119126 final String zeros = new String (new char [length ]).replace ('\0' , '0' );
120127 assertTrue (TimeValue .parseTimeValue ("-" + zeros + "1" , null , "test" ) == TimeValue .MINUS_ONE );
0 commit comments