This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Sun, 2005-02-06 at 15:11 +0100, Sven de Marothy wrote: > Hi, > Yes, I included David's fix in my most recent patch. But in the context > of how much was and is broken with GregorianCalendar, it's a minor bug. > I don't see why you're discussing this. You should merge in the > Classpath versions of these classes ASAP and perhaps close some of those > related Bugzilla bugs. > > > > There are a few changes in Classpath that are not reflected in libgcj, > > > however I wouldn't call it a rewrite. Someone has gone and rather > > > gratuitously reformatted a bunch of code and created a lot of diffs, but > > > there's only a few significant code changes. > > Well, my only comment is that I feel the changes were significant. The > old code was broken in nearly every way. There were also what appear to > be ad-hoc 'fixes' introduced into the code, which didn't really fix > things. > > Leniency basically did not work correctly at all. Pre-gregorian-cutover > (1582) dates were all wrong. The cutover itself was not handled > correctly. The BC-AD transition was wrong. The day of week was incorrect > for all dates prior to the epoch (1970). Handling of time-zones was > correct in some places and incorrect in others. Handling of insufficient > data was incorrect. Nonlenient checking wasn't working in all cases. > Clearing the calendar resulted in the wrong values. The priority order > of fields was wrong. Etc. The code had No, it's not a complete rewrite, > but in hindsight that would've been easier, giving the time I spent > trying to figure out how the broken code was supposed to work before > realizing it couldn't work. > > I also removed several commented-out methods, redundant methods, and > some confusingly similar methods (getLinearDay()/getLinearTime()). > > The remaining bugs I know of is that minimumDaysInFirstWeek and > firstDayOfWeek handling isn't implemented. I'm working on that. There > may be bugs in the roll methods too, I haven't tested them yet. > > /Sven > > I just want to second what Sven says here. The Calendar and TimeZone implementations, prior to the series of patches referenced by Mark, were buggy and unreliable to say the least. Looking at the patches, the size of the actual code changes may appear minor, but the effect of these changes is much clearer; they actually make these classes USABLE. I've been working with the java.text.SimpleDateFormat class, which relies heavily on these classes to operate (the class simply handles the external processes of input parsing and output formatting, all date calculation is completed by the Calendar and TimeZone implementations). Doing so revealed some of the bugs which Sven has dedicated a lot of his time to solving (the patches, in all, constitute almost a complete re-write). To give a metric for this change, you only have to look at the Mauve testcases for parsing dates using SimpleDateFormat. When I first looked at this, it had 20 test cases, 18 of which failed. It now has 21 (I added one from a bug in our database), and all of these pass. This is as a direct result of the Calendar/TimeZone changes and my own fixes to this class. Just as with the Calendar classes, there are no doubt still bugs in this class (I particularly want to look at the format side of things now), but these changes do go a long way to achieving a usable date system for our library. As a result, I think these definitely need to go into libgcj. They solve quite a few bugs that have occurred in both Classpath and libgcj's bug databases, and, for one, I'm not particularly keen on seeing these constantly reoccurring in the new release version. If the indenting changes are a problem, then Sven made these in a separate patch so this could be avoided. With respect to indenting, many of the classes are quite simply a mess, and no doubt a few of these changes have crept into my own patches in the past. It's a temptation that's hard to resist. -- Andrew :-) Please avoid sending me Microsoft Office (e.g. Word, PowerPoint) attachments. See http://www.fsf.org/philosophy/no-word-attachments.html No software patents in Europe -- http://nosoftwarepatents.com "Value your freedom, or you will lose it, teaches history. `Don't bother us with politics' respond those who don't want to learn." -- Richard Stallman "We've all been part of the biggest beta test the world has ever known -- Windows" -- Victor Wheatman, Gartner
Attachment:
signature.asc
Description: This is a digitally signed message part
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |