History log of /libcore/luni/src/main/java/java/util/GregorianCalendar.java
Revision Date Author Comments
1baa4fcbfe3c22e5f06a4fee48f520162d23270f 22-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't cache partial sets of date fields in Calendar.

This was only useful when modifying calendars within a single day.
Not worth the complexity, and possibly a source of bugs.

(cherry-pick of 0170a5c2cd87d90e11513a45f29ebafee6a1701c.)

Bug: 2435103
Change-Id: Ib6d68aed29f424ac464fc389e7ae26909667b9b9
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
b434689d9f54081c903aab94fe8f2ab11973de23 15-Jun-2011 Jesse Wilson <jessewilson@google.com> Don't interpret useDaylightTime as 'ever used daylight time'.

Change-Id: If0935b3725b3c91a74291b8f51d2263a5e33f1d4
http://code.google.com/p/android/issues/detail?id=15629
http://b/2435103
996083c82dd18f09ac014d8ad2d40eeec85f6b24 10-Jun-2011 Jesse Wilson <jessewilson@google.com> Fix GregorianCalendar DST adjustment bug.

We were always adjusting from DST. In some situations this
lead to us adjusting the delta too much, and we'd double
compensate.

Change-Id: I777eef5b545010dfd18f5b771d37bcd728a69885
http://code.google.com/p/android/issues/detail?id=17502
fb0ec0e650bf8be35acb0d47da0311a7c446aa33 14-Jan-2011 Elliott Hughes <enh@google.com> Remove useless android-changed comments.

I've changed useful ones to regular comments or TODOs, as appropriate.

I've left ones in code like java.util.concurrent where we really are
tracking an upstream source, making the change markers useful.

I've left a handful of others where I intend to actually investigate
the implied TODOs before deciding how to resolve them.

Change-Id: Iaf71059b818596351cf8ee5a3cf3c85586051fa6
171dc20afe5071d5cbfad7103903bfa2c1f8d00f 02-Sep-2010 Elliott Hughes <enh@google.com> Use idiomatic Java "type[] id" syntax instead of "type id[]".

I've left xalan and the other xml filth alone, as usual.

Change-Id: I6be274501fff73e67ca6b3c872704988e0e30486
deacd761e85ee4d75a6adbdd63225fc4a6d3088d 13-Feb-2010 Elliott Hughes <enh@google.com> Fix a few of our FindBugs "high" warnings.

RuleBasedBreakIterator was breaking the equals/hashCode contract.

Various classes were calling toString on arrays, which isn't very useful.

GregorianCalendar was missing a null/instanceof check. (FindBugs complained about
the former, but the super.equals would actually take care of that. The lack of
the explicit "instanceof" did mean that we could throw ClassCastException if you
had a Calendar that wasn't a GregorianCalendar, though. [Not easily testable,
and I hope we'll replace our calendars with ICU4J's before we actually have
another Calendar subclass.])

Collator's cache was broken, but luckily never had anything inserted into it
anyway.
18aa2ce5993b2f06e1d4d60c90d92fe4650b1d75 06-Feb-2010 Elliott Hughes <enh@google.com> Fix a bug I introduced to SimpleTimeZone with my Calendar.setTimeZone fix.

Our implementations of SimpleTimeZone and Calendar became mutually recursive
for custom time zones when I changed GregorianCalendar.computeFields to use
TimeZone.inDaylightTime --- SimpleTimeZone's implementation of inDaylightTime
creates a GregorianCalendar leading to a stack overflow looking something
like this...

at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:595)
at java.util.Calendar.complete(Calendar.java:819)
at java.util.Calendar.setTimeInMillis(Calendar.java:1319)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:339)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:325)
at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)

I've cut the knot by introducing "Grego" from ICU4J, and rewriting our
SimpleTimeZone.inDaylightTime in the style of ICU4J's implementation.

Maybe we'll be using the ICU4J calendar implementation sooner than I thought!
69bcb487b7317dde579a8ddc1a8094040ed7ae2b 04-Feb-2010 Elliott Hughes <enh@google.com> Minimal fix for Calendar.setTimeZone.

The interpretation of Calendar's competing member variables when the time,
time zone, and fields[] don't agree is confusing, and led to
Calendar.setTimeZone having no effect. I've improved the documentation
based on my reverse-engineering and fixed this bug. I noticed a lot of
other code that looks incorrect though, and I've raised http://b/2419810
suggesting that we switch to icu4j's calendars in the longer term.

Bug: http://code.google.com/p/android/issues/detail?id=6184
4fefecee9d4a5d2a4510f516b4015607b19e8d09 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
5839b909d9528b7726e678a4b696ed37df15d897 10-Oct-2009 Jesse Wilson <jessewilson@google.com> Udating luni to Harmony r823222.

Highlights:
- InputStream.skip concurrency issue
- "better" messages in bound exceptions for streams and arrays
- prefer fewer writes to underlying streams (using byte[] buffers)
- Rename subclasses to not reuse names from their superclasses
- PlatformAddressFactory.allocMap bugfix

Plus some spelling fixes, style fixes, serial version UIDs and other
boilerplate improvements.
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