persistence@glassfish.java.net

Re: Some tests in JUnitEJBQLDateTimeTestSuite failed on Oracle

From: Wonseok Kim <guruwons_at_gmail.com>
Date: Tue, 19 Dec 2006 12:08:20 +0900

Hi Tom, Michael

This problem occurs only with 10.x drivers(10.1.0.2, 10.1.0.5, 10.2.0.1,
10.2.0.2) in my environment, but with 9.x drivers it works fine. Server
version(I tried on 9.2.0.1 and 10.2.0.1-XE) doesn't matter.

I found the date value "1901-12-31 23:59:59.999" is inserted as "1902-01-01
00.00.00.999" with 10.x drivers, but not with 9.x drivers.
But if I change the value to "1911-12-31 23:59:59.999", it is inserted
correctly with 10.x drivers.
So I suspect that the very old date value is not handled well with
10.xdrivers in specific timezone.

To avoid this problem, I would like to change date values from "1901-12-31
23:59:59.999" to "1911-12-31 23:59:59.999" occuring in DateTimePopulator and
JUnitEJBQLDateTimeTestSuite. There was no problem in other tests.
Please review the attached diff.

Thanks,
-Wonseok

On 12/19/06, Tom Ware <tom.ware_at_oracle.com> wrote:
>
> Hi Wonseok,
>
> I am also having trouble reproducing the issue you are seeing. When
> you run the type tests, it is important that the JDBC driver version and
> the DB version match. Is there a chance you are running with mismatched
> versions?
>
> -Tom
>
> Michael Bouschen wrote:
>
> > Hi Wonseok,
> >
> > yes, "ant clean-db" does the trick! I did run the tests on a clean
> > 10XE database which is why I did not see the errors there.
> >
> > Thanks for the info and sorry for the false alarm.
> >
> > Regards Michael
> >
> >> The two tests (testDDLUniqueKeysAsJoinColumns and
> >> testDDLSubclassEmbeddedIdPkColumnsInJoinedStrategy) fails because my
> >> last checked-in changed table name and column type of some entities.
> >>
> >> It will be okay if you run "ant clean-db" (clear existing tables and
> >> constraints). Really sorry for that.
> >> Every others maybe should clean existing tables (at least DDL_*
> >> tables) once due to remaining constraints(otherwise recreating
> >> DDL_CKENTB table fails).
> >>
> >> Regards,
> >> -Wonseok
> >>
> >> On 12/18/06, *Michael Bouschen* <Michael.Bouschen_at_sun.com
> >> <mailto:Michael.Bouschen_at_sun.com>> wrote:
> >>
> >> Hi Wonseok,
> >>
> >> I tried to reproduce the error, but the date tests succeed on my
> >> side.
> >>
> >> However, the specific version of the oracle database server and
> >> the jdbc driver matters! I see two ddl test errors
> >> (testDDLUniqueKeysAsJoinColumns and
> >> testDDLSubclassEmbeddedIdPkColumnsInJoinedStrategy) when running
> >> on an oracle database 9.2.0.7.0 and an oracle JDBC driver
> >> 9.0.2.0.0. A SQL INSERT statement on table DDL_CKENTB fails:
> >> ORA-01438: value larger than specified precision allows for this
> >> column.
> >>
> >> I also tried different combinations of oracle database server and
> >> jdbc driver, but they all succeed:
> >> - 9.2.0.7.0 database server with 10.2.0.1.0XE jdbc driver
> >> - 10XE (10.2.0.1.0) database server and 9.0.2.0.0 jdbc driver
> >> - 10XE (10.2.0.1.0) database server and 10.2.0.1.0XE jdbc driver
> >>
> >> In case you are interested, you find the output of the failing
> >> ddl tests below.
> >>
> >> Regards Michael
> >>
> >>
> >
>