e074332ca844f4eda7440813fa2a4fe137cdf430 |
|
03-Feb-2016 |
Paul Duffin <paulduffin@google.com> |
Adjust for DST properly in GregorianCalendar.add(int,int). Use the adjustForZoneAndDaylightSavingsTime() added in change 196553 to handle computing the time in millis in the add(int,int) method. The removed code was very confusing as it relied on side effects of calls to setTimeInMillis() a lot. Removed an unnecessary fieldMask parameter from the adjustForZoneAndDaylightSavingsTime() method, it was duplicating information provided by tzMask. Bug: 26022884 Change-Id: I476112cad93642340ff23779fa1902cbd0fa8e25
|
3af4662f6f624863e2cf72cfb8ab56b70a1e0355 |
|
29-Jan-2016 |
Paul Duffin <paulduffin@google.com> |
Restore ZoneInfo specific code in GregorianCalendar During removal of the sun.util.calendar.ZoneInfo class from OpenJDK some code was removed from GregorianCalendar that cast the TimeZone to ZoneInfo in order to call a special method in ZoneInfo to get the raw and DST offset. The removed code was necessary because the package private method in TimeZone getOffsets(long, int[]) that provided them separately could not be overridden by ZoneInfo, the public method getOffset(long) did not support providing them separately, and attempts to calculate the DST offset (by subtracting getRawOffset()) from the total offset did not work properly with ZoneInfo when it had historic changes to the DST and raw offset. The result of the removal was that GregorianCalendar had an inconsistent view of TimeZone which lead to the time calculated by GregorianCalendar being out by a couple of hours either way depending on the difference between the applicable offset and the 'default' offset. This adds a method in ZoneInfo to return the raw and DST offsets separately and then adds back in the special code to call that method in GregorianCalendar. This fixes a number of CalendarTest failures, including testSetHourOfDayInEuropeLondon. It should also fix some reported bugs in a number of apps, including Calendar. Bug: 26869497 Change-Id: Ia780b628ef951aec6fd08de1cebc7b6e904f77b0
|
90a3721dc9454a67e1c64409782d277424d38fc3 |
|
14-Jan-2016 |
Paul Duffin <paulduffin@google.com> |
Fix setting a calendar to a time during transition into DST The transition into Daylight Savings Time (DST), i.e. spring forward, results in a period of time (equal to the DST offset) during which the wall clock time is incorrect. Basically, the GregorianCalendar does not handle that situation properly and calculates the wrong UTC time (in millis since 1st January 1970). The reason this exists in Enso is because in OpenJDK the handling of that situation is not performed directly in GregorianCalendar computeTime() but instead in a special method in sun.util.calendar.ZoneInfo. That means OpenJDK has similar behavior to enso when a different TimeZone implementation, such as SimpleTimeZone is used. That special code was removed so it fell back to the code that is used for SimpleTimeZone which is broken. In pre-enso GregorianCalendar has a special method getOffset() that is called for all instances of TimeZone that handles the case so unlike OpenJDK it does work for SimpleTimeZone. The solution is to add some code into GregorianCalendar that handles the transition into DST specially. That means it will work the same as pre-enso, not OpenJDK for SimpleTimeZone. As it is complex I have refactored the code a bit more than necessary in order to improve the structure and add some extra documentation. I also added extra tests, some of which do not work in OpenJDK. Bug: 25897679 Change-Id: I06d0c81e8da20ec00267ed8ba24b26a8a2c163ed
|
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c |
|
21-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Update file headers. Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
|
9c853c5b9ebbb0ef60a013ae10ee411d70dfa832 |
|
18-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Use OpenJdk implementations of java.text.* - LocaleInternalsTest has been disabled since it depends on internal implementation details. - Collator: Use libcore's RuleBasedCollatorICU to fetch collator rules instead of sun.misc.resources.LocaleData & friends. - DateFormat: Add support for set24HourTimePref (not wired up yet). - DateFormatSymbols : Use libcore's LocaleData & TimeZoneNames classes internally. - NumberFormat: Use libcore's LocaleData. - Drop support for SCIENTIFICSTYLE (we should re-enable this at some point ?). - SimpleDateFormat : Don't reject the format specifiers for standalone weekday and friends. We'll need to switch over to using ICU4J formatters at some point. - Calendar : Use GregorianCalendar only. - TimeZone : Use TimeZoneNames to access time zone names. Change-Id: I4a2866904d4f2f39f0793154d9aad7f109da3b5a
|
51b1b6997fd3f980076b8081f7f1165ccc2a4008 |
|
16-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/native: jdk/src/solaris/native/java/io/canonicalize_md.c build/linux-amd64/include/classfile_constants.h jdk/src/share/native/java/net/DatagramPacket.c jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c jdk/src/share/native/java/lang/Double.c jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c jdk/src/solaris/native/java/io/FileDescriptor_md.c jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c jdk/src/share/native/java/io/FileInputStream.c jdk/src/solaris/native/sun/nio/ch/FileKey.c jdk/src/solaris/native/java/io/FileOutputStream_md.c jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/share/native/java/lang/Float.c jdk/src/share/native/java/net/Inet4Address.c jdk/src/solaris/native/java/net/Inet4AddressImpl.c jdk/src/share/native/java/net/Inet6Address.c jdk/src/solaris/native/java/net/Inet6AddressImpl.c jdk/src/share/native/java/net/InetAddress.c jdk/src/solaris/native/java/net/InetAddressImplFactory.c jdk/src/share/native/java/io/io_util.c jdk/src/solaris/native/sun/nio/ch/IOUtil.c jdk/src/share/native/java/io/io_util.h jdk/src/solaris/native/java/io/io_util_md.c jdk/src/solaris/native/java/io/io_util_md.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h jdk/src/share/native/java/lang/java_props.h jdk/src/solaris/native/java/lang/java_props_md.c jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h jdk/src/share/native/common/jlong.h jdk/src/solaris/native/common/jlong_md.h jdk/src/share/native/common/jni_util.c jdk/src/share/native/common/jni_util.h jdk/src/solaris/native/common/jni_util_md.c jdk/src/share/javavm/export/jvm.h jdk/src/solaris/javavm/export/jvm_md.h jdk/src/solaris/native/java/net/linux_close.c jdk/src/share/native/sun/misc/NativeSignalHandler.c jdk/src/solaris/native/sun/nio/ch/NativeThread.c jdk/src/share/native/java/net/net_util.c jdk/src/share/native/java/net/net_util.h jdk/src/solaris/native/java/net/net_util_md.c jdk/src/solaris/native/java/net/net_util_md.h jdk/src/solaris/native/java/net/NetworkInterface.c jdk/src/share/native/sun/nio/ch/nio.h jdk/src/solaris/native/sun/nio/ch/nio_util.h jdk/src/share/native/java/io/ObjectStreamClass.c jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c jdk/src/share/native/java/lang/Runtime.c jdk/src/share/native/java/lang/Shutdown.c jdk/src/share/native/sun/misc/Signal.c jdk/src/solaris/native/java/net/SocketInputStream.c jdk/src/solaris/native/java/net/SocketOutputStream.c jdk/src/share/native/java/lang/StrictMath.c jdk/src/share/native/java/lang/String.c build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h jdk/src/share/native/java/lang/System.c jdk/src/share/native/java/lang/Thread.c jdk/src/share/native/java/lang/Throwable.c jdk/src/solaris/native/java/io/UnixFileSystem_md.c jdk/src/solaris/native/java/lang/UNIXProcess_md.c jdk/src/share/native/java/util/zip/zip_util.c jdk/src/share/native/java/util/zip/zip_util.h Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
|