JDK-4743562 : Calendar.getInstance returns a Calendar not deserializable in prev releases
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.util:i18n
  • Affected Version: 1.4.2
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic
  • CPU: generic
  • Submitted: 2002-09-09
  • Updated: 2003-11-05
  • Resolved: 2003-11-05
Related Reports
Relates :  
Description
A regression test, test/java/util/Calendar/CalendarSerializationTest.sh,
fails in th locale.

------------------------------------------------------------------------
cal=sun.util.BuddhistCalendar[time=-16133847975000,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=1458,MONTH=8,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=15,MINUTE=33,SECOND=45,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]

decal=java.util.GregorianCalendar[time=1000827225000,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2001,MONTH=8,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=15,MINUTE=33,SECOND=45,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Exception in thread "main" java.lang.RuntimeException: The 1st serialized Calendar object is incompatible.
	at CalendarSerializationTest.main(CalendarSerializationTest.java:42)
cal=sun.util.BuddhistCalendar[time=-16133880375000,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=1458,MONTH=8,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=15,MINUTE=33,SECOND=45,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]

decal=java.util.GregorianCalendar[time=1000794825000,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2001,MONTH=8,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=18,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=15,MINUTE=33,SECOND=45,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Exception in thread "main" java.lang.RuntimeException: The 1st serialized Calendar object is incompatible.
	at CalendarSerializationTest.main(CalendarSerializationTest.java:42)
Exception in thread "main" java.lang.ClassNotFoundException: sun.util.BuddhistCalendar
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:195)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:654)
	at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:918)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at CalendarSerializationTest.main(CalendarSerializationTest.java:35)
Exception in thread "main" java.lang.ClassNotFoundException: sun.util.BuddhistCalendar
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:195)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:654)
	at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:918)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at CalendarSerializationTest.main(CalendarSerializationTest.java:35)
Exception in thread "main" java.lang.ClassNotFoundException: sun.util.BuddhistCalendar
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:195)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:654)
	at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:918)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
	at CalendarSerializationTest.main(CalendarSerializationTest.java:35)
result: Failed. Execution failed: exit code 1


test result: Failed. Execution failed: exit code 1

Comments
EVALUATION In Thai locales, Calendar.getInstance returns a BuddhistCalendar which doesn't exist before 1.4.0. ###@###.### 2002-10-11 The compatibility require is that a serialized object on 1.5 is deserializable on 1.4. Closing this bug report as "will not fix". ###@###.### 2003-11-05
11-10-2002