I notice that a TCK test fails (1)
I hadn't noticed before, but the getDay method is not only deprecated
but also returns the day of the week, not the day of the month. So the
test case is bogus.
If we really want to give users the ability to get the day of the
month, the proper method is getDate (2).
WDYT?
Craig
1)
testGetDay
(org
.apache
.jdo
.tck
.query
.jdoql
.methods.SupportedDateMethods)junit.framework.AssertionFailedError:
Assertion A14.6.2-60 (SupportedDateMethods) failed:
Wrong query result:
query: SELECT FROM org.apache.jdo.tck.pc.company.Person WHERE
birthdate.getDay() == 10
expected: java.util.ArrayList of size 1
[FullTimeEmployee(1, emp1Last, emp1First, born 9/Jun/1970, phone
{work=123456-1, home=1111}, hired 31/Dec/1998, weeklyhours 40.0,
$20000.0)]
got: java.util.ArrayList of size 0
[]
at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:719)
at org.apache.jdo.tck.query.QueryTest.queryFailed(QueryTest.java:518)
at
org
.apache
.jdo.tck.query.QueryTest.checkQueryResultWithoutOrder(QueryTest.java:
548)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1293)
at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1133)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:
1069)
at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java:
1049)
at
org
.apache
.jdo
.tck
.query
.jdoql
.methods.SupportedDateMethods.executeQuery(SupportedDateMethods.java:
143)
at
org
.apache
.jdo
.tck
.query
.jdoql
.methods.SupportedDateMethods.testGetDay(SupportedDateMethods.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:284)
at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:
108)
at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:
148)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:
123)
FAILURES!!!
2) public int getDate()
Deprecated. As of JDK version 1.1, replaced by
Calendar.get(Calendar.DAY_OF_MONTH).
Returns the day of the month represented by this Date object. The
value returned is between 1 and 31 representing the day of the month
that contains or begins with the instant in time represented by this
Date object, as interpreted in the local time zone.
Craig L Russell
Architect, Oracle
http://db.apache.org/jdo
408 276-5638 mailto:[email protected]
P.S. A good JDO? O, Gasp!