commit-classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commit-cp] [bugs #9495] GregorianCalendar.getTimeInMillis() fails with


From: Michael Koch
Subject: [commit-cp] [bugs #9495] GregorianCalendar.getTimeInMillis() fails with large millisecond values
Date: Tue, 11 Jan 2005 12:46:11 +0000
User-agent: Mozilla/5.0 (compatible; Konqueror/3.3; Linux; X11; i686; de) (KHTML, like Gecko)

This is an automated notification sent by Savannah.
It relates to:
                bugs #9495, project classpath

==============================================================================
 LATEST MODIFICATIONS of bugs #9495:
==============================================================================

               Posted by: Michael Koch <mkoch>
               Posted on: 2005-01-11 12:46 (GMT)
    _______________________________________________________

                Category:                    None -> classpath              


==============================================================================
 OVERVIEW of bugs #9495:
==============================================================================

URL:
  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=9495>

                 Summary: GregorianCalendar.getTimeInMillis() fails with
large millisecond values
                 Project: classpath
            Submitted by: crawley
            Submitted on: Die 29.06.2004 um 14:50
                Category: classpath
                Severity: 5 - Average
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
        Platform Version: None

    _______________________________________________________


getTimeInMillis() converts large (magnitude) values to

year/month/day incorrectly.  Typically, it miscalculates

the month as negative and throws IllegalArgumentException.

For example:



FAIL: gnu.testlet.java.util.GregorianCalendar.conversion: uncaught exception
at "Testing setTimeInMillis(281474976710656) i = 48" number 3

java.lang.IllegalArgumentException: month out of range

   at java.util.SimpleTimeZone.getOffset (SimpleTimeZone.java:684)

   at java.util.GregorianCalendar.computeFields (GregorianCalendar.java:610)

   at java.util.Calendar.setTimeInMillis (Calendar.java:541)

   at gnu.testlet.java.util.GregorianCalendar.conversion.testMonotonic1
(conversion.java:79)

   at gnu.testlet.java.util.GregorianCalendar.conversion.test
(conversion.java:41)

   at gnu.testlet.SimpleTestHarness.runtest (SimpleTestHarness.java:254)

   at gnu.testlet.SimpleTestHarness.main (SimpleTestHarness.java:364)



The problem is that GregorianCalendar is doing some key

conversion calculations using 'int' instead of 'long', and

intermediate values are overflowing.








==============================================================================

This item URL is:
  <http://savannah.gnu.org/bugs/?func=detailitem&item_id=9495>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]