d43b9ef11a1095967a3396b246639b563e1a4128 |
|
12-Sep-2012 |
Kenny Root <kroot@google.com> |
Add consistent reasons for NullPointerException Semi-automated replacement of empty and non-conforming NullPointerException reason messages. (cherry-pick of 86acc043d3334651ee26c65467d78d6cefedd397.) Change-Id: I6d893979f5c20a50e841e32af9fd7b2d8bc9d54d
|
86acc043d3334651ee26c65467d78d6cefedd397 |
|
12-Sep-2012 |
Kenny Root <kroot@google.com> |
Add consistent reasons for NullPointerException Semi-automated replacement of empty and non-conforming NullPointerException reason messages. Change-Id: Iedeb4b21949e973c4042ce5982dda315f2e785e1
|
78c3de051d68b703af480778c100ca335690b250 |
|
30-Jul-2012 |
Elliott Hughes <enh@google.com> |
Fix TimeZone's handling of Australia/Lord_Howe. Australia/Lord_Howe has a half hour difference between standard and daylight time, rather than the usual hour. Our ZoneInfo implementation ignored this. Fix that oversight, make SimpleDateFormat actually use this information, and prevent TimeZone.getTimeZone("GMT") and TimeZone.getTimeZone("UTC") from being quite as expensive as they accidentally were. Longer term I think we should probably remove all uses of getDSTSavings from libcore in favor of TimeZone.getOffset, but this is probably a useful step forwards anyway. It fixes Australia/Lord_Howe in the meantime and it means that anyone else who's using getDSTSavings won't be bitten (even if they too really ought to be using TimeZone.getOffset). Bug: 4723412 Bug: http://code.google.com/p/android/issues/detail?id=24684 Change-Id: I5d50afecbe1453157e9c8f0b88305a258a3ba2e0
|
91348f798cddae22b59ee1a17bd24315c0897f6f |
|
23-Jun-2012 |
Elliott Hughes <enh@google.com> |
Be more careful when parsing custom zone ids. The old code was allowing invalid ids. Bug: 6556561 Change-Id: I691d33fa133527a76bbffa4e3b56a023c389ca8f
|
6fb123c8681a795c65cbd67ffcc0ef641c473288 |
|
10-Jan-2012 |
Elliott Hughes <enh@google.com> |
Make it clearer that TimeZone.getTimeZone(null) throws NPE on purpose. Bug: http://code.google.com/p/android/issues/detail?id=24036 Change-Id: I3464dc5094274931d67e3ca4a5bc553fa1a6dc96
|
d8d3329347af700beed67172c77046b5c2ecece2 |
|
15-Jun-2011 |
Jesse Wilson <jessewilson@google.com> |
Kill another use of TimeZone.useDaylightTime(). I wrote another test to prove the use was incorrect. Change-Id: I86c5e53c735e7948b96c0d2a87abe21eb9aed876 http://b/2435103
|
6d82ce5d35a5e84aedf08528fd98b849f3f565a6 |
|
15-Feb-2011 |
Elliott Hughes <enh@google.com> |
Move ZoneInfo and ZoneInfoDB into libcore.util. Change-Id: I91385512ec27aa2aebdc163ae204e542efa58f21
|
566bbb1d5a0ffadfc07fa58176587d4bd0d0be13 |
|
12-Feb-2011 |
Elliott Hughes <enh@google.com> |
Various time zone strings improvements. * Added a cache -- really a memo table -- to libcore.icu.TimeZones. I've also made the intern table global across all locales, for the common case where one language has many corresponding country codes (and thus locales) for which the strings are all the same. (I.e. this gives us deduplication across locales where before we only had it within locales.) We also eagerly populate the cache with both the default locale *and* en_US in the zygote, which should provide better behavior for everyone whose default locale isn't en_US. * Switched from linear search to binary search when pulling a row out of the zone strings table. We could hash these, but I currently have no reason to think we'd gain much speed for the space. * Removed the special-case hack I had to ask ICU for a single string. The new code largely removes the need for this, though one can imagine a theoretical app that will behave worse under the new regime, all plausible ones will benefit. * Switch ICU over to using an mmap(2)ed copy of its .dat file and tell it never to look for stuff on the file system. This doesn't actually work in any current version of ICU, though it is slightly faster by virtue of no longer looking for individual .res files (it still keeps looking for the same .dat file over and over). I'll work on fixing ICU later. This change takes us from about 1.1s/locale to 0.8s/locale. My current ICU hack takes that down to 0.3s/locale, which is still obscene, but it's another step in the right direction. * Fixed the "unambiguous abbrevations" logic in TimeZones.cpp so that all users of (say) CET to mean "Central European Time" get it, not just first. We really just wanted to avoid the situation where there's a "Central Excellent Time" or whatever, whose CET would *conflict* with the first one we learned about. Multiple references to the same time zone are not conflicts. * Moved clone2dStringArray to the only place it's really needed. * Slightly better documentation for Comparator. * More tests, including the one for CET formatting that I should have added when I fixed CET parsing, which would have shown me the error of my old ways. Bug: 3443476 Change-Id: If1d50e6273fc98a38139f14445265ce0be5e09dd
|
6c0aa9e00fdbcc2765d3c498c45e078457944468 |
|
14-Sep-2010 |
Elliott Hughes <enh@google.com> |
Fix the TimeZone.getTimeZone documentation and a test. Bug: 2996225 Change-Id: I9242b8a8e343d2b1995b5f1d0cb715d2fa3080f6
|
705462a2b003b2eeed90bf3cebe0871e02554cbd |
|
12-Aug-2010 |
Elliott Hughes <enh@google.com> |
Minor documentation improvements. Fix unqualified uses of SimpleDateFormat in TimeZone.java, explain how to use getPercentageInstance (http://code.google.com/p/android/issues/detail?id=10333), add an explicit test to make sure no-one accidentally "fixes" that odd-but-correct behavior, and remove an example from the DecimalFormat documentation that doesn't really clarify anything. Bug: http://code.google.com/p/android/issues/detail?id=10333 Change-Id: I52f22d817c7c6c32ad38fb6953fbe909a76f8943
|
3ab13ebe9d67b0b210865853902b854711ef45b0 |
|
11-Aug-2010 |
Elliott Hughes <enh@google.com> |
Improve the performance of TimeZone.getTimeZone. Rewrite the code that reads time zone data so that rather than opening, reading, and closing the file each time, we just keep the file mapped. This patch actually removes functionality: we no longer support reading individual Unix time zone data files. Also stop cloning guaranteed-new instances returned by ZoneInfoDB. Before: benchmark us logarithmic runtime TimeZone_getDefault 9.85 = TimeZone_getTimeZoneUTC 211.40 ===================== TimeZone_getTimeZone_America_Caracas 437.87 ========================== TimeZone_getTimeZone_America_Santiago 783.29 ============================== TimeZone_getTimeZone_GMT_plus_10 181.80 ==================== TimeZone_getTimeZone_default 194.78 ==================== After: benchmark us logarithmic runtime TimeZone_getDefault 10.8 = TimeZone_getTimeZoneUTC 70.9 ============= TimeZone_getTimeZone_America_Caracas 118.9 ================= TimeZone_getTimeZone_America_Santiago 797.5 ============================== TimeZone_getTimeZone_GMT_plus_10 57.8 ============ TimeZone_getTimeZone_default 72.2 ============= (Note that these have very different scales.) Bug: 2870945 Change-Id: Iae5aa86153006d4de8e7278d30bcaeef6a9ccab7
|
f14cadb15b06371fb9a6daf885dc1c4bccf975b9 |
|
10-Aug-2010 |
Elliott Hughes <enh@google.com> |
Minor TimeZone cleanup. Getting ready to do some real work here, I thought I'd improve the documentation and remove some cruft. Bug: 2870945 Change-Id: I771badc8afa5c0a5f77880f64e1542d77672d984
|
21557bb6a8f35a2f9889adba449cac950c9d41b9 |
|
23-Jun-2010 |
Elliott Hughes <enh@google.com> |
Add TimeZones.forLocale, plus some tidying. The new feature here is TimeZones.forLocale and the accompanying JNI. I've also taken the liberty of pulling the time zone stuff out of ICU.java and ICU.cpp, and I've moved some of the ICU-related code I've written recently (NativeIDN, NativeNormalizer, and NativePluralRules) into a new libcore.icu package. I've also renamed various things so the implementation details use the same terminology as the thing they're implementing. Bug: 2790386 Change-Id: Ie39a2f5f7023e8e29864de15790be8a660f5cba6
|
e32b21f14d52bac429a9c54fe031f9e92c911d64 |
|
18-Jun-2010 |
Jesse Wilson <jessewilson@google.com> |
Implementing ZoneInfo.hasSameRules(). Moving TimeZoneTest to OldTimeZoneTest and removing test methods that are duplicated between libcore and Harmony. Also adding Objects.equals() to make implementing this easy, and removing redundant time zone tests. I did a few searches to find candidate code that could take advantage of this new utility method and adopted it there. Change-Id: I133298f1b36d755bd35c1ad0dc0ab366fd164270
|
2f633269e71f3fb0b6248cc695cf37c5cbaf7e60 |
|
20-Apr-2010 |
Jesse Wilson <jessewilson@google.com> |
Fixing TimeZone.setDefault() documentation. Set expectations for date formatting to tolerate "GMT-07" in the output. The alternative is to emit an ambigous date string. Applications that want pretty date formatting should use the proper facilities: SimpleDateFormat, etc. This problem was detected by org.apache.harmony.luni.tests.java.util.DateTest.test_toString
|
757a7942eed2b0aa457f8517a0259d2ac82c5b18 |
|
16-Apr-2010 |
Elliott Hughes <enh@google.com> |
Merge LocaleData and Resources, rename Resources to ICU. Also move our ICU tests into our little tree of tests. Bug: 2596471 Change-Id: I73b53d74c26ef9bf670f12cac58b51ba61eefead
|
3106a99ccbe2e2a25bb66266d0ee42d98dd18099 |
|
13-Apr-2010 |
Elliott Hughes <enh@google.com> |
Improve documentation about the user's default locale. Add a bit of text to Locale's class documentation, and include a link from every method that uses Locale.getDefault(). Also try to consistently say "user's default locale", as a subliminal hint that this isn't necessarily the developer's locale, nor en_US. Bug: 2593000 Change-Id: Ieebe864ed6b9fecbfef5d5415269299739cedd1b
|
dc30337534e7970bb5b8cfbcb3c2b7f75d818795 |
|
05-Dec-2009 |
Elliott Hughes <enh@google.com> |
Improve TimeZone documentation. We can't do anything about the RI's unfortunate choice of method names, but improving our documentation might help reduce the confusion they cause. Bug: 2244560
|
4fefecee9d4a5d2a4510f516b4015607b19e8d09 |
|
13-Nov-2009 |
Jean-Baptiste Queru <jbq@google.com> |
eclair snapshot
|
1c422fc0ab0692e10a05af6f48c6276c4dad4bea |
|
16-Oct-2009 |
Jesse Wilson <jessewilson@google.com> |
Respond to impossible CloneNotSupportedExceptions with AssertionErrors. See bug 2183132.
|
a389b4a499f40379b0b204d7ba1c2057663d95c0 |
|
11-Aug-2009 |
Jesse Wilson <jessewilson@google.com> |
Update Luni to Harmony r802921. Notable changes: - replaced StringBuffer with StringBuilder in several places - fixed a problem with BufferedInputStream's newline characters (EBCDIC) - cleanup Timer's finalizer helper object - new cache for the canonical path of a file - fixed concurrency issue with ArrayList - floating point parsing now trims length for very small numbers - encoding specified "UTF-8" when converting some byte[]s to strings (JarURLConnection, Util, OSFileSystem) - Harmony now implements floor and ceil in Java. We continue to use native code.
|
f5597e626ecf7949d249dea08c1a2964d890ec11 |
|
25-Jul-2009 |
Jesse Wilson <jessewilson@google.com> |
Integrate luni module (but not tests) to Harmony r772995. Notable changes - Stripped "@since Android 1.0" from many files. Most files are now 100% the same in Dalvik and Harmony. - AbstractStringBuilder.reverse() supports surrogates - AbstractStringBuilder shares less to waste less memory - Bitset optimized - BufferedInputStream changed to support unsynchronized close() - BufferedOutputStream does flushInternal - BufferedReader supports EBCDIC NEL - Collections.synchronizedList().indexOf() does a copy for more concurrency - Classes in nio module changed: DatagramChannelImpl, SocketChannelImpl and ServerSocketChannelImpl (these depend on internal APIs changed in this update) - DataInputStream/DataOutputStream now use a small buffer to limit the number of times the underlying stream is accessed - Date now has a minutes offset, more efficient toString() - ExposedByteArrayInputStream: new internal class - DeleteOnExit moved to top-level class - FileDescriptor.isValid() now non-native - Float, Double lessThan optimized (fix for compare(-0.0F, 0.0F) still pending) - FileURLConnection now guesses content types from streams - HashMap iterator changes - Hashtable iterator changes - INetworkSystem - removes bind2(), createMulticastSocket, sendStream(), - renames createSocket to createStreamSocket - JarURLConnection rewritten - LinkedHashMap: new iterator - Locale, Currency, TimeZone: now use ICU in Harmony, plain Java in Dalvik - ObjectInputStream: Accessor objects in Harmony, direct native in Dalvik - ProxyClassFile - many changes - String - optimized ascii for toLowerCase, toUpperCase, compare - Timer - rewritten - TreeMap - rewritten - URLClassLoader - new - URLConnection - new guessContentTypeFromStream(), uses org.apache.harmony.awt.www.content to lookup content type handlers
|
adc854b798c1cfe3bfd4c27d68d5cee38ca617da |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
1c0fed63c71ddb230f3b304aac12caffbedf2f21 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
dd828f42a5c83b4270d4fbf6fce2da1878f1e84a |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
|
fdb2704414a9ed92394ada0d1395e4db86889465 |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
|