[ SEARCH-2376 ] Fix timezone mgmt on IE (#904)

* [ SEARCH-2376 ] Fix timezone mgmt on IE

* [ SEARCH-2376 ] Restrict the test timezones by unique offset + Junit repeater

(cherry picked from commit bb88db5864b4c1713d2681268e29a0c74f03e2ec)
This commit is contained in:
Andrea Gazzarini
2020-08-19 12:47:44 +02:00
committed by agazzarini
parent 2b683b055c
commit 29d1c7f438

View File

@@ -4483,8 +4483,7 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants
}
/**
* @param dateAndResolution
* @return
* Returns the formatted start (i.e. lower bound) of a range query.
*/
private String getDateStart(Pair<Date, Integer> dateAndResolution)
{
@@ -4492,39 +4491,37 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants
cal.setTime(dateAndResolution.getFirst());
switch (dateAndResolution.getSecond())
{
case Calendar.YEAR:
cal.set(Calendar.MONTH, cal.getActualMinimum(Calendar.MONTH));
case Calendar.MONTH:
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
case Calendar.DAY_OF_MONTH:
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
case Calendar.HOUR_OF_DAY:
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
case Calendar.MINUTE:
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
case Calendar.SECOND:
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
case Calendar.MILLISECOND:
default:
case Calendar.YEAR:
cal.set(Calendar.MONTH, cal.getActualMinimum(Calendar.MONTH));
case Calendar.MONTH:
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
case Calendar.DAY_OF_MONTH:
cal.set(Calendar.HOUR_OF_DAY, cal.getActualMinimum(Calendar.HOUR_OF_DAY));
case Calendar.HOUR_OF_DAY:
cal.set(Calendar.MINUTE, cal.getActualMinimum(Calendar.MINUTE));
case Calendar.MINUTE:
cal.set(Calendar.SECOND, cal.getActualMinimum(Calendar.SECOND));
case Calendar.SECOND:
cal.set(Calendar.MILLISECOND, cal.getActualMinimum(Calendar.MILLISECOND));
case Calendar.MILLISECOND:
default:
}
SimpleDateFormat formatter = CachingDateFormat.getSolrDatetimeFormat();
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
return formatter.format(cal.getTime());
return CachingDateFormat.getSolrDatetimeFormat().format(cal.getTime());
}
private Pair<Date, Integer> parseDateString(String dateString)
{
try
{
Pair<Date, Integer> result = CachingDateFormat.lenientParse(dateString, Calendar.YEAR);
return result;
return CachingDateFormat.lenientParse(dateString, Calendar.YEAR);
} catch (java.text.ParseException e)
{
SimpleDateFormat oldDf = CachingDateFormat.getDateFormat();
oldDf.setTimeZone(TimeZone.getTimeZone("UTC"));
try
{
Date date = oldDf.parse(dateString);
return new Pair<Date, Integer>(date, Calendar.SECOND);
return new Pair<>(date, Calendar.SECOND);
} catch (java.text.ParseException ee)
{
if (dateString.equalsIgnoreCase("min"))