jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java
changeset 17474 8c100beabcc0
parent 15658 55b829ca2334
child 25966 71ee1f15845e
--- a/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	Wed May 15 15:01:59 2013 +0100
+++ b/jdk/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java	Wed May 15 07:48:57 2013 -0700
@@ -246,16 +246,16 @@
                 return false;
             }
             ldate.setNormalizedYear(era.getSinceDate().getYear() + ldate.getYear() - 1);
-            // If it's not the last Era, validate the date.
-            if (era != eras[eras.length - 1]) {
-                Date tmp = newCalendarDate(date.getZone());
-                tmp.setEra(era).setDate(date.getYear(), date.getMonth(), date.getDayOfMonth());
-                normalize(tmp);
-                if (tmp.getEra() != era) {
-                    return false;
-                }
+            Date tmp = newCalendarDate(date.getZone());
+            tmp.setEra(era).setDate(date.getYear(), date.getMonth(), date.getDayOfMonth());
+            normalize(tmp);
+            if (tmp.getEra() != era) {
+                return false;
             }
         } else {
+            if (date.getYear() >= eras[0].getSinceDate().getYear()) {
+                return false;
+            }
             ldate.setNormalizedYear(ldate.getYear());
         }
         return super.validate(ldate);