- errln((UnicodeString)"Fail: [" + cal.getType() + "] " +
- ymdToString(cal, ymd) +
- " " + FIELD_NAME[f] + "(" + f + ")=" + v +
- ", actual range=" + minActual + ".." + maxActual +
- ", allowed=(" + minLow + ".." + minHigh + ")..(" +
- maxLow + ".." + maxHigh + ")");
+ // timebomb per #9967, fix with #9972
+ if ( isICUVersionBefore(52,0,2) && uprv_strcmp(cal.getType(), "dangi") == 0 &&
+ testMillis >= 1865635198000.0 ) { // Feb 2029 gregorian, end of dangi 4361
+ logln((UnicodeString)"Fail: [" + cal.getType() + "] " +
+ ymdToString(cal, ymd) +
+ " " + FIELD_NAME[f] + "(" + f + ")=" + v +
+ ", actual=" + minActual + ".." + maxActual +
+ ", allowed=(" + minLow + ".." + minHigh + ")..(" +
+ maxLow + ".." + maxHigh + ")");
+ } else {
+ errln((UnicodeString)"Fail: [" + cal.getType() + "] " +
+ ymdToString(cal, ymd) +
+ " " + FIELD_NAME[f] + "(" + f + ")=" + v +
+ ", actual=" + minActual + ".." + maxActual +
+ ", allowed=(" + minLow + ".." + minHigh + ")..(" +
+ maxLow + ".." + maxHigh + ")");
+ }